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

链表中的每个元素必须是带有指针的记录类型,且记录内部要有相同指针类型的数据域。

单向链表必须有一个头指针和一个尾指针。

链表内各元素通过指针连接。

环形链表、双向链表见图就很容易解释了

双向链表的插入程序:

     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有关问题