主题:[讨论]关于链表的一个不懂得!
这是链表的代码,绝对没错
type link=^node;
node=record
key:integer;
next:link;
end;
var head,p,q:link;
n,m:integer;
procedure createlink;
begin
head:=nil;q:=head;
readln(m);
while m>0 do begin
new(p);
p^.key:=m;
p^.next:=nil;
if head=nil then head:=p
else q^.next:=p;
q:=p;
readln(m);
end;
end;
procedure printlink(t:link);
begin
if t=nil then exit;
write(t^.key:4);
printlink(t^.next);
end;
begin
createlink;
printlink(head);
end.
意为输入M个数,按输入顺序输出.
我的问题.
printlink的参数是HEAD,而在第一次递归时
参数时head^.next,而在创建链表时
head.next并没有被付值.高手回答.
type link=^node;
node=record
key:integer;
next:link;
end;
var head,p,q:link;
n,m:integer;
procedure createlink;
begin
head:=nil;q:=head;
readln(m);
while m>0 do begin
new(p);
p^.key:=m;
p^.next:=nil;
if head=nil then head:=p
else q^.next:=p;
q:=p;
readln(m);
end;
end;
procedure printlink(t:link);
begin
if t=nil then exit;
write(t^.key:4);
printlink(t^.next);
end;
begin
createlink;
printlink(head);
end.
意为输入M个数,按输入顺序输出.
我的问题.
printlink的参数是HEAD,而在第一次递归时
参数时head^.next,而在创建链表时
head.next并没有被付值.高手回答.