设计一个算法,将X插入到一个有序(从小到大排序)的线性表(顺序存储结构)的适当位置上,以保持线性表的有序性

 我来答
njyuyue
2010-10-02 · TA获得超过781个赞
知道小有建树答主
回答量:430
采纳率:0%
帮助的人:239万
展开全部
本人是学Pascal的,如果看不懂的话就写个伪代码给你:

插入过程(t待插入数,head头指针)
1.t<head.data 即t比head的值小
将t插在Head前,并将head指向t
2.否则
在链表中顺序查找一个p
使得p.next.data>t,即p的下一个节点的值比t大
将t插在p后面
过程结束

源代码:
type lnk=^node;
node=record
data:Longint;
next:lnk;
end;
var n,i,t:longint;
root:lnk;
procedure insert(t:longint);
var p,q:lnk;
begin
if root=nil then
begin
new(root);
root^.data:=t; root^.next:=nil;
end
else if root^.data>t then
begin
new(p); p^.data:=t; p^.next:=root;
root:=p;
end
else
begin
p:=root;
while (p^.next<>nil) and (p^.next^.data<t) do
p:=p^.next;
new(q); q^.data:=t; q^.next:=p^.next;
p^.next:=q;
end;
end;
procedure print;
var p:root;
begin
p:=root;
while p<>nil do
begin
write(p^.data,' ');
p:=p^.next;
end;
writeln;
end;
begin {main}
readln(n);
root:=nil;
for i:=1 to n do
begin
read(t);
insert(t);
end;
print;
end.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式