pascal中链表问题
来源:百度知道 编辑:UC知道 时间:2024/07/05 02:43:41
谁能解释一下环形链表、双向链表以及单向链表之间的关系,要详细易懂哦!还有给出双向链表的删除程序。
有加分····
以下是创建与删除,给一个与之配套的插入程序,谢谢
type pointer=^node;
node=record
data:integer;
front,next:pointer;
end;
var head,tail:pointer; n:integer;
procedure creat(var head,tail:pointer; var n:integer); {jianli caozuo}
var p:pointer;
begin
n:=0; new(p);
readln(p^.data); p^.front:=nil; p^.next:=nil;
while p^.data<>-1 do
begin inc(n);
if n=1 then begin head:=p; tail:=p; end
else begin p^.front:=tail; tail^.next:=p; p^.next:=nil;
tail:=p; end;
new(p);
readln(p^.data);
end;end;
procedure print(head,tail:pointer);
var p:pointer;
begin
p:=head;
writeln('tou dao wei:');
while p<>nil do
begin
write(p^.data:6);
p:=p^.next;
end;
writeln;
end;
begin
creat(head,tail,n);
print(head,tai
有加分····
以下是创建与删除,给一个与之配套的插入程序,谢谢
type pointer=^node;
node=record
data:integer;
front,next:pointer;
end;
var head,tail:pointer; n:integer;
procedure creat(var head,tail:pointer; var n:integer); {jianli caozuo}
var p:pointer;
begin
n:=0; new(p);
readln(p^.data); p^.front:=nil; p^.next:=nil;
while p^.data<>-1 do
begin inc(n);
if n=1 then begin head:=p; tail:=p; end
else begin p^.front:=tail; tail^.next:=p; p^.next:=nil;
tail:=p; end;
new(p);
readln(p^.data);
end;end;
procedure print(head,tail:pointer);
var p:pointer;
begin
p:=head;
writeln('tou dao wei:');
while p<>nil do
begin
write(p^.data:6);
p:=p^.next;
end;
writeln;
end;
begin
creat(head,tail,n);
print(head,tai
链表中的每个元素必须是带有指针的记录类型,且记录内部要有相同指针类型的数据域。
单向链表必须有一个头指针和一个尾指针。
链表内各元素通过指针连接。
环形链表、双向链表见图就很容易解释了
双向链表的插入程序:
while(p<>NIL) do
begin
write(p^.character);
q:=p;
p:=p^.nextchar;
dispose(q);
end;
pascal问题
pascal问题!``````
Pascal问题!
PASCAL问题
pascal语言程序设计的问题
一些pascal的问题
两个pascal的问题
一个pascal问题
pascal 文件问题
pascal有关问题