免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1635 | 回复: 2
打印 上一主题 下一主题

顺序表的部分实现。有点问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-24 14:41 |只看该作者 |倒序浏览
#include <stdio.h>
#include <stdlib.h>
#include <error.h>  /*自定义的报错信息*/
#define ListSize 100  /*表空间*/
typedef int DataType;

typedef struct{
        DataType data[ListSize];
        int length;
}Seqlist;

//初始化表
void InitList(Seqlist *L){
        L->length = 0;
}

//插入运算
void InsertList(Seqlist *L, DataType x, int i){
        int j;
        if(i < 1 || i > L->length+1)
                error("position error.");
        if(L->length >= ListSize)
                error("overflow");
        for ( j = L->length-1; j >= i-1; j--)
                L->data[j+1] = L->data[j];
        L->data[i-1] = x;
        L->length++;
}

void DisplayList(Seqlist *L){
        int i;
        for (i = 0; i <= L->length-1; i++)
                printf("第%d个元素是:%d\n", i+1, L->data);
}

int main(void) {

        Seqlist mylist;           //如果此处用Seqlist *mylist;  下面的InitList(mylist)就有问题,应该是本人对指针的理解还太浅了。请帮忙解释一下。
        InitList(&mylist);
        int i;
        for (i  = 1; i <=100; i++){
                InsertList(&mylist, 100, i);
        }
        DisplayList(&mylist);
        InsertList(&mylist, 101, 2); //测试溢出
}

本人的编译器是 eclipse cdt + mingw

论坛徽章:
0
2 [报告]
发表于 2008-09-24 14:46 |只看该作者
错了错了。

[ 本帖最后由 benbenr 于 2008-9-24 17:38 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-09-24 17:25 |只看该作者
Seqlist *mylist是个指针,未初始化你就给它Init当然不行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP