永发信息网

PASCAL中怎么建立一个双向的链表

答案:3  悬赏:60  手机版
解决时间 2021-02-28 11:39
PASCAL中怎么建立一个双向的链表
最佳答案
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,tail);
dele(head,tail,n,2);
print(head,tail);
end.
全部回答
var
i,j,n:longint;
pre,now,x,y:array[0..1000] of longint;begin
readln(n);
for i:=1 to n do
begin
readln(x[i*2-1],y[i*2-1]);
pre[i*2-1]:=now[x[i*2-1]];
now[x[i*2-1]]:=i*2-1; x[i*2]:=y[x*2-1]; y[x*2]:=x[i*2-1];
pre[i*2]:=now[x[i*2]];
now[x[i*2]]:=i*2;
end;
end. 是这样的吗?
指针实现的双向链表:
type
node = ^list;
list = record
val:integer;
prev,next:node;
end;
{尾部插入}
procedure append(var head:node; val:integer);
var
p,t:node;
begin
t := head;
p := nil;
while t <> nil do
begin p := t; t := t^.next; end;
if p <> nil then
begin new(p^.next); t := p^.next end
else
begin new(head); t := head; end;

t^.prev := p;
t^.next := nil;
t^.val := val;
end;
{遍历输出}
procedure traversal(head:node);
begin
while head <> nil do
begin
write(head^.val, ' ');
head := head^.next;
end;
writeln;
end;
{反序}
procedure reverse(var head:node);
var l,t:node;
begin
l := head;
while l <> nil do
begin
t := l^.next;
l^.next := l^.prev;
l^.prev := t;
head := l;
l := t;
end;
end;
{销毁}
procedure destroy(head:node);
var t:node;
begin
while head <> nil do
begin
t := head;
head := head^.next;
dispose(t);
end;
end;
var
head:node = nil;
i:integer;
begin
for i := 1 to 10 do
append(head, i);
traversal(head);
reverse(head);
traversal(head);
destroy(head);
readln;
end.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
国内哪家基因检测公司比较靠谱?
宁美国度,名龙堂,攀升兄弟和京天华盛,哪个
求助,苹果6在qq空间看不了视频了
河南省国家大学科技园(东区)东门这个地址在什
澳门地图APP哪些好
cf我关闭了团队普通聊天选项 我打字 别人还能
家里养的小狗(从未出去)的狗牙不小心碰到我
韩国短筒袜和休闲鞋子怎么搭配女
想问,诸葛亮有打过哪些仗
六年级寒假新时空第33页答案
今年的安徽省中考难不难?
中国石油三溪加油站在什么地方啊,我要过去处
宝宝满月了脐带掉后有个地方不订疤都有脓水了
对于不给利益不收货的现象,店长怎么看待这个
lol走a怎么改键啊,具体怎么操作
推荐资讯
顺鑫饭店在什么地方啊,我要过去处理事情
王记丸子加牛肉我想知道这个在什么地方
为了验证胰岛素具有降低血糖含量的作用,在设
爱的 是什么意思?
下列操作中,正确的是AA. 给试管中的固体药品
乌鲁木齐哪里有比较大的正规宠物医院?
我到女朋友家,翻了女朋友的聊天记录,她一再
安徽三联学院北区-G教学楼在哪里啊,我有事要
大庆万达广场附近有什么好吃的,好玩儿的啊。
椒江大酒店我想知道这个在什么地方
男,38岁。因胃癌行胃大部分切除术,术前查Hb
如何用水粉颜料调出肉色
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?