| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 575 人关注过本帖
标题:想用间接寻址法实现表 来解决两链表排序问题,可是真的晕了,求各位大虾帮忙 ...
只看楼主 加入收藏
走停停
Rank: 2
等 级:论坛游民
帖 子:19
专家分:24
注 册:2011-3-31
结帖率:100%
收藏
 问题点数:0 回复次数:2 
想用间接寻址法实现表 来解决两链表排序问题,可是真的晕了,求各位大虾帮忙看我的程序啊!
#include<stdio.h>
#include<malloc.h>
typedef struct indlist * List;
typedef struct indlist{
    int n;
    int maxsize;
    int **table;
}Indlist;
List ListInit(int size)   //创建空表
{
    List L=(Indlist*)malloc(sizeof *L);
    L->n=0;L->maxsize=size;
    L->table=(int**)malloc(size*sizeof(int));
    return L;
}
void ListInsert(int k,int x,List L)    //表元素插入
{
    int i;
    for(i=L->n-1;i>=k;i--) L->table[i+1]=L->table[i];
    L->table[k]=(int*)malloc(1*sizeof(int));
    *L->table[k]=x;
    L->n++;
}
void PrintList(List L)   //输出
{
    int i;
    for(i=0;i<L->n;i++)
        printf("%d",*L->table[i]);
}
void main()
{
    int m,n,i,x;
    int search(int,int,int,List);
    scanf("%d %d",&n,&m);
    List L=ListInit(n);
    for(i=0;i<m;i++)
        ListInsert(search(0,n,scanf("%d",&x),L),x,L);
    PrintList(L);
}
int search(int a,int b,int x,List L)    //二分法需找插入点
{
    int t,c;
    t=(a+b)/2;
    if(x>*L->table[t]) c=search(t,b,x,L);
    if(x<*L->table[t]) c=search(a,t,x,L);
    else c=t;
    return c;
}
第一行输入n和m,第二行输入n个从小到大的序列,第三行输入m个要插入的数,如
4 2
1 5 7 9
4 8
输出1 4 5 7 8 9
搜索更多相关主题的帖子: include return 
2011-09-28 10:30
走停停
Rank: 2
等 级:论坛游民
帖 子:19
专家分:24
注 册:2011-3-31
收藏
得分:0 
帮忙看看啊,谢谢哈!
2011-09-28 10:34
走停停
Rank: 2
等 级:论坛游民
帖 子:19
专家分:24
注 册:2011-3-31
收藏
得分:0 
刚学数据结构,书本好像都是伪代码,意思是可以看懂,可实现起来就晕了......
2011-09-28 10:49
快速回复:想用间接寻址法实现表 来解决两链表排序问题,可是真的晕了,求各位大 ...
数据加载中...
 
   



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

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