【初学菜鸟】单向链表程序,大神们帮忙看看哪里出问题了。
pascal吧
全部回复
仅看楼主
level 1
曼莎诗祺 楼主
题目如下:输入若干个整数,请按顺序建立一个单向链表并输出它,输入-1时表示结束。
程序如下:
program exl(input,output);
type pointer=^nodetype;
nodetype=record
data :integer;
next :pointer;
end;
var
head,p,r:pointer;
x:integer;
begin
readln(x);
New(head);
head:=nil;
r:=head;
while x<>-1 do
begin
new(p);
p^.data:=x;
p^.next:=nil;
r^.next:=p;
r:=p;
readln(x);
end;
r^.next:=nil;
writeln('output: ');
p:=head^.next;
while p<>nil do
begin
writeln(p^.data:4);
p:=p^.next;
end;
readln;
readln;
end.
可是运行不起来……大神们帮忙orz……[乖]
2014年02月08日 11点02分 1
level 1
曼莎诗祺 楼主
木有人吗?[委屈]
2014年02月08日 12点02分 2
level 14
楼主,链表的程序调试起来可是要花一点时间的。
2014年02月08日 12点02分 3
好吧……
2014年02月08日 12点02分
回复 曼莎诗祺 :顺便打个广告,欢迎你加入Pascal吧。(@canadaottawa 我可在帮你招人哦……)
2014年02月08日 12点02分
回复 82111668_2012 :(帮我)是什么意思- -。
2014年02月08日 12点02分
回复 canadaottawa :没什么……
2014年02月08日 12点02分
level 14
program exl(input,output);
type pointer=^nodetype;
nodetype=record
data :integer;
next :pointer;
end;
var
head,p,r:pointer;
x:integer;
begin
readln(x);
New(head);
head:=nil;//问题在这一行,head是一个空的指针
r:=head; //r也是一个空的指针
while x<>-1 do
begin
new(p);
p^.data:=x;
p^.next:=nil;
r^.next:=p;//r(就是head)是空的,它的next域没有定义,不能赋值。
r:=p;
readln(x);
end;
r^.next:=nil;
writeln('output: ');
p:=head^.next;
while p<>nil do
begin
writeln(p^.data:4);
p:=p^.next;
end;
readln;
readln;
end.
2014年02月08日 12点02分 4
看懂了吗,如果没看懂,问我,我一定知无不言,言无不尽。
2014年02月08日 12点02分
回复 82111668_2012 :恩。thank you!
2014年02月08日 13点02分
1