一道数据结构题
TYPEptr=^node;node=RECORDdata:integer;next:ptrEND;过程create建立以head为头指针的单链表。PROCEDUREcr...
TYPE ptr=^node;
node=RECORD
data:integer; next:ptr
END;
过程create建立以head为头指针的单链表。
PROCEDURE creat (Var head : ptr);
VAR p,q:ptr;k:integer;
BEGIN
new(head);q:-head;read(k);
WHILE k>0 DO
BEGIN
(new(p));(p^.data=k);(q^.data=p);(q=p);
read(k)
END;
q^,next:=NIL;
END;
我学过C和C++,可数据结构用的不是这两种语言的语法啊?一句都看不懂,请高手逐句解释下,谢啦
还有啊,数据结构到底用的是什么语言,我明明把书看了,做题却连题目什么意思都看不懂。。 展开
node=RECORD
data:integer; next:ptr
END;
过程create建立以head为头指针的单链表。
PROCEDURE creat (Var head : ptr);
VAR p,q:ptr;k:integer;
BEGIN
new(head);q:-head;read(k);
WHILE k>0 DO
BEGIN
(new(p));(p^.data=k);(q^.data=p);(q=p);
read(k)
END;
q^,next:=NIL;
END;
我学过C和C++,可数据结构用的不是这两种语言的语法啊?一句都看不懂,请高手逐句解释下,谢啦
还有啊,数据结构到底用的是什么语言,我明明把书看了,做题却连题目什么意思都看不懂。。 展开
4个回答
展开全部
数据结构不是用的什么语言。数据结构这本书只是解释“数据结构”这种抽象的东西,而说明什么是“数据结构”什么语言都可用,只要说清楚就行。如单链表就可以用自然语言表达。
上面用的是伪代码。说明一下,伪代码并不都是一样的语法。
TYPE ptr=^node; ptr是指向节点类型的指针
节点类型是RECORED,里面有两个数据类型。
node=RECORD ;
data:integer data是整型
next:ptr next是个指针类型
END;
过程create建立以head为头指针的单链表。
PROCEDURE creat (Var head : ptr);
VAR p,q:ptr;
k:integer;
BEGIN
new(head); 为头指针申请一个节点的空间。
q:-head; q=head头指针给q
read(k); 读入一个数k
WHILE k>0 DO 当k>0,执行下面的语句,注意,这也是个循环结构
BEGIN
(new(p)); 同上
(p^.data=k); p->data=k;
(q^.next=p);//你这里都写错了,是next。q->next=p;
(q=p);
read(k);同上
END;
q^,next:=NIL; 已经结束while循环,使最后的节点指向空指针,即q->next=NULL;
END;
上面用的是伪代码。说明一下,伪代码并不都是一样的语法。
TYPE ptr=^node; ptr是指向节点类型的指针
节点类型是RECORED,里面有两个数据类型。
node=RECORD ;
data:integer data是整型
next:ptr next是个指针类型
END;
过程create建立以head为头指针的单链表。
PROCEDURE creat (Var head : ptr);
VAR p,q:ptr;
k:integer;
BEGIN
new(head); 为头指针申请一个节点的空间。
q:-head; q=head头指针给q
read(k); 读入一个数k
WHILE k>0 DO 当k>0,执行下面的语句,注意,这也是个循环结构
BEGIN
(new(p)); 同上
(p^.data=k); p->data=k;
(q^.next=p);//你这里都写错了,是next。q->next=p;
(q=p);
read(k);同上
END;
q^,next:=NIL; 已经结束while循环,使最后的节点指向空指针,即q->next=NULL;
END;
展开全部
当我没有回答过.失礼了!请勿见笑!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
e.
因为是深度优先,找到与顶点0直接相连的结点,由邻接矩阵知道是顶点1(多个相邻节点取第一个找到的未遍历到的结点),然后再在邻接矩阵中找与顶点1直接相连的结点,得到顶点3。相同方法找到后续结点为:顶点4,顶点2。因为顶点2的相连结点都已被遍历,所以退回到顶点4继续遍历,遍历到顶点5,然后是顶点6
因为是深度优先,找到与顶点0直接相连的结点,由邻接矩阵知道是顶点1(多个相邻节点取第一个找到的未遍历到的结点),然后再在邻接矩阵中找与顶点1直接相连的结点,得到顶点3。相同方法找到后续结点为:顶点4,顶点2。因为顶点2的相连结点都已被遍历,所以退回到顶点4继续遍历,遍历到顶点5,然后是顶点6
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询