设顺序表L中的元素递增有序。试写一算法,将数据元素x插入到顺序表L的适当位置,以保持该表的有序性。

 我来答
郭啊蛮的小油桃
2018-04-04 · TA获得超过4648个赞
知道小有建树答主
回答量:20
采纳率:0%
帮助的人:2842
展开全部

if(array[i]<=x&&array[i+1]>=x) {k[j++]=array[i];k[j++]=x;}

  • 定义一个指向L头结点的指针,然后挨个的比较,如果这个插入的元素大于第i个且小于第i+1个,则分配一个新空间,使第i+1个元素到末尾都一次向后平移一个单位,然后把插入的元素赋值给第i+1个元素。

  • 原来第9个位置的元素后移到了第10个位置上,第8个位置的元素后移到了第9个位置上,这样第8个位置就空了出来,从而可以在这个位置上插入新元素。

  • 由于是递增的单链表:0->0->0->0 这种结构不能逆向反问;所以直接做操作是很不好实现的; 所以我第一步是将两链表的指针反转,这样就使原来两链表由递增序列变成了递减序列;第二步在根据 合并排序的思想,将两个链合并。

yy21drd
推荐于2018-02-28 · 超过15用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:41万
展开全部
定义一个指向L头结点的指针,然后挨个的比较,如果这个插入的元素大于第i个且小于第i+1个,则分配一个新空间,使第i+1个元素到末尾都一次向后平移一个单位,然后把插入的元素赋值给第i+1个元素;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
从不曾寂寞
2011-11-28
知道答主
回答量:15
采纳率:0%
帮助的人:12.6万
展开全部
struct list *p, *q, *s, *head;
p = head;
while(p != NULL)
{
if(x > p->data)
{
q = p;
p = p->next;
}
else
{
s = (struct list*)malloc(sizeof(struct list));
s->data = x;
q->next = s;
s->next = p;
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LL豆子豆子
2011-11-28
知道答主
回答量:2
采纳率:0%
帮助的人:3343
展开全部
if(array[i]<=x&&array[i+1]>=x) {k[j++]=array[i];k[j++]=x;}
else k[j++]=array[i];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式