读书人

关于顺序表,该如何处理

发布时间: 2012-04-12 15:46:35 作者: rapoo

关于顺序表

C/C++ code
#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100typedef struct{ int data[MAXSIZE]; int last;}list;list* creatlist()//创建顺序表 {    list *s;     s=(list*)malloc(sizeof(list));    s->last = 0;    return s;}int addlist(list *s,int z)//追加表结点 {    if(s->last<MAXSIZE)    {        s->data[s->last]=z;        s->last++;        return 1;    }    else    return 0;    }int insert(list *s,int pos,int y)//插入节点 {    int i;    if(pos>0 && pos <= s->last)    {        for(i=s->last;i>=pos-1;i--)        {            s->data[i+1]=s->data[i];        }        s->data[pos-1]=y;        s->last++;        return 1;    }    else    {        printf("\n插入位置错误!\n");        return 0;    }    }int deletelist(list *s,int pos)//删除节点 {    int i;    if(pos>0 && pos <= s->last)    {        for(i=pos;i<=s->last;i++)        {            s->data[i-1]=s->data[i];        }        s->last--;        return 1;   }   else   {        printf("\n删除位置错误!!\n\n");        return 0;   }}void output(list *s)//列出节点 {    int i;    if(s->last==0)    {        printf("表空!!");    }    else    {        printf("当前表的数据是: ");        for(i=0;i<s->last;i++)        {            printf("%d ",s->data[i]);        }        printf("\n");    }}main(){    list *sis;    char ch;    int b,y,weizhi,i;    sis=creatlist();    if(sis!=NULL)    {        printf("创建顺序表成功!\n");    }    printf("\n请选择操作\n\n1:追加表数据\t2:插入\t3:列出表\t4:删除\n");    scanf("%d",&ch);    for(i=0;;i++)    {        switch(ch)        {            case 1:                system("CLS");                printf("请输入要追加顺序表的值: \n");                scanf("%d",&y);                if(addlist(sis,b)==1)                {                    printf("追加顺序表值成功!\n");                }                else printf("追加顺序表值失败!\n");                break;            case 2:                printf("请输入要插入的值: ") ;                scanf("%d",&b);                printf("请输入要插入的位置: ") ;                scanf("%d",&weizhi);                 system("CLS");                if(insert(sis,weizhi,b)==1)                {                    printf("插入成功!\n");                }                else printf("插入失败!!\n");                break;            case 3:                system("CLS");                output(sis);                break;            case 4:                printf("请输入要删除的位置: ");                scanf("%d",&weizhi);                system("CLS");                if(deletelist(sis,weizhi)==1)                {                    printf("删除成功!!\n");                }                else printf("删除失败!!\n");                break;            default: printf("没有这个选项\n");break;        }        printf("\n请继续选择操作\n\n1:追加表数据\t2:插入\t3:列出表\t4:删除\n");        scanf("%d",&ch);        getchar();    }    system("pasue");    return 0;}



怎么我昨天还可以运行 怎么现在出现内存错误 ?请高手帮帮

[解决办法]
C/C++ code
char ch;改为:int ch;
[解决办法]
探讨
3# 正确~~

[解决办法]
探讨
C/C++ codechar ch;
改为:int ch;

读书人网 >C语言

热点推荐