| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6085 人关注过本帖
标题:设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上 ...
只看楼主 加入收藏
RT0000
Rank: 1
等 级:新手上路
帖 子:9
专家分:4
注 册:2012-10-15
结帖率:100%
收藏
 问题点数:0 回复次数:5 
设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当位置上,以保持该表的有序性
先建立一个待插入的结点,然后依次与与链表中的各结点的数据域比较大小,找到插入该结点的位置,最后插入该结点。
算法如下:
    void inorderList (LinkList *&L, ElemType x) {
        LinkList *s, *p, *q;
        s = (LinkList *)malloc(sizeof(LinkList));   //  建立一个待插入的结点
        s->data = x; s->next = NULL;
        if (L == NULL || x<L->data)                 //  若单链表为空或x小于第一个结点的data域
        {
               s->next = L;                         //  把*s结点插入到头结点之后
               L = s;
         }else {
              q = L;                                //  寻找插入位置,p指向待比较的结点,q指向p的前驱结点
              p = q->nest;
              while (p != NULL && x>p->data) {      //  若x大于p所指结点的data域值  
                    q = p;
                    p = p->next;
              }
                  s->next = p;                      //  将s结点插入到*q和*p之间
                  q->next = s;
         }
    }
搜索更多相关主题的帖子: 元素 
2012-10-15 13:12
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:0 
...........不错的代码.....perfect
2012-10-15 16:22
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
还有没有更好的算法呢,楼主
比如将这个链表一分为二   在第一部分比较 最后的元素  如果大于  那么这个元素在这个链表的后半部分
如果是小于 那么在这个链表的前半部分

用这个思维 再想想 改进下算法

在此对楼主的算法 表示敬意

我要成为嘿嘿的黑客,替天行道
2012-10-16 14:04
nikobelic
Rank: 2
等 级:论坛游民
帖 子:37
专家分:30
注 册:2012-5-26
收藏
得分:0 
学习了  3楼说的算法我有些疑问  因为这是链式存储结构 如果先将链表一分为2 不是还要从head到一个一个读被切割的地方吗?时间复杂度跟楼主的是不是一样啊? 新手求教..
2012-10-16 16:50
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
建立一个中间 数组  存放 中间结构,然后再复制到链表上去

基本原理是
a[i]=p->date
i++;
p=p->next
 这个样子进行   数组下标0 1 2 3  4 5 6 7 8 9 10.。。。。
对应于链表头 一直 next下去

其实数组和链表 它们是亲戚

我要成为嘿嘿的黑客,替天行道
2012-10-16 23:38
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
别忘了给你链表的 数据结构里 加上一个记录链表长度的变量

不然你怎么晓得链表多长呢   呵呵

我要成为嘿嘿的黑客,替天行道
2012-10-17 00:04
快速回复:设顺序表va中的数据元素递增有序。试写一算法,将x插入到顺序表的适当 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056609 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved