| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2907 人关注过本帖
标题:数据结构顺序链表c语言实现代码
只看楼主 加入收藏
星野
Rank: 2
来 自:河北
等 级:论坛游民
帖 子:73
专家分:26
注 册:2016-4-13
结帖率:82.35%
收藏
已结贴  问题点数:10 回复次数:4 
数据结构顺序链表c语言实现代码
程序代码:
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 100
#define ERROR 0
#define TRUE 1

typedef struct
{
    int data[MAXSIZE];
    int length;
}SqList;
int InitList(SqList *L,int e)
{
    L->length=e;
}//组建

int Insert(SqList *L,int i,int e)
{
    int k;
    if(i<1||i>L->length+1)
    {
        return ERROR;
    }
    if(L->length>=MAXSIZE)
    {
        return ERROR;
    }
    for(k=L->length-1;k>=i-1;k--)
    {
        L->data[k+1]=L->data[k];
    }
    L->data[i-1]=e;
    L->length++;
    return 1;
}//插入

int DestroyList(SqList *L,int i,int *e)
{
    int k;
    if(i<1||i>L->length)
    {
        return ERROR;
    }
    *e=L->data[i-1];
    for(k=i;k<L->length;k++)
    {
        L->data[k-1]=L->data[k];
    }
    L->length--;
    return 1;
}//删除

int Iocate(SqList L,int e)
{
    int i=0;
    while((i<=L.length)&&(L.data[i]!=e))
        i++;
    if(i<=L.length)
        return i+1;
    else
        return ERROR;

}//查找
void menu()
{
    printf("请第一步建立线性表\n");
    printf("1、建立线性表***********\n");
    printf("2、插入**********\n");
    printf("3、删除**********\n");
    printf("4、查找**********\n");
    printf("5、遍历输出********\n");
    printf("");
    printf("*6、退出**********\n");
}
int main()
{
    int num,length,number,location;
    int i,e;
    int *data;
    data=(int*)malloc(sizeof(int));
    SqList *L;
    menu();
    while(1)
    {
        printf("请输入你的选择:\n");
        scanf("%d",&num);
        switch(num)
        {
            case 1:
                L=(SqList *)malloc(sizeof(SqList));
                printf("请输入线性表的长度");
                scanf("%d",&length);
                InitList(L,length);
                printf("依次输入线性表的%d个值",length);
                for(i=0;i<length;i++)
                    {
                    scanf("%d",&number);
                    L->data[i]=number;
                    }
                printf("输入完成");
                break;
                case 2:
                    printf("请输入你要插入的数值和位置");
                    scanf("%d %d",&e,&location);
                    if(Insert(L,location,e)==TRUE)
                        printf("插入成功");
                    else
                        printf("插入失败");
                    break;
                    case 3:
                        printf("请输入你要删除的节点数");
                        scanf("%d",&i);
                        if(DestroyList(L,i,data))
                            printf("删除成功,删除的节点数值为%d",number);
                        else
                            printf("删除失败");
                        break;
                        case 4:
                            printf("请输入你要查找的数值");
                            scanf("%d",&e);
                            Location=Locate(*L,e);
                            printf("你要查找的节点数值为%d",location);
                            break;
                            case 5:
                                for(i=0;i<=L->length;i++)
                                    printf("%d",L->data[i]);
                                break;
                                case 6:
                                    return 0;
    }
    }
    printf("\n");
    return 0;


}


不会改了   不知道什么原因!求助!求助!求助!

[此贴子已经被作者于2016-9-26 21:20编辑过]

搜索更多相关主题的帖子: c语言 
2016-09-26 19:34
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:10 
没有测试功能,只是用软件编译了一下就弹出错误了。我不知道楼主用的什么软件,但是一般都应该有编译信息啊,可以辅助你快速定位到可以错误的地方

程序代码:
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 100
#define ERROR 0
#define TRUE 1

typedef struct
{
    int data[MAXSIZE];
    int length;
}SqList;
int InitList(SqList *L,int e)
{
    L->length=e;
}//组建

int Insert(SqList *L,int i,int e)
{
    int k;
    if(i<1||i>L->length+1)
    {
        return ERROR;
    }
    if(L->length>=MAXSIZE)
    {
        return ERROR;
    }
    for(k=L->length-1;k>=i-1;k--)
    {
        L->data[k+1]=L->data[k];
    }
    L->data[i-1]=e;
    L->length++;
    return 1;
}//插入

int DestroyList(SqList *L,int i,int *e)
{
    int k;
    if(i<1||i>L->length)
    {
        return ERROR;
    }
    *e=L->data[i-1];
    for(k=i;k<L->length;k++)
    {
        L->data[k-1]=L->data[k];
    }
    L->length--;
    return 1;
}//删除

int Iocate(SqList L,int e)// 121    49    [Error] 'Locate' was not declared in this scope  locate,Iocate傻傻分不清楚。

{                         //我建议楼主调整一下软件的字体,I和L都分不清楚数字0和字母O更加要疯

    int i=0;
    while((i<=L.length)&&(L.data[i]!=e))
        i++;
    if(i<=L.length)
        return i+1;
    else
        return ERROR;

}//查找
void menu()
{
    printf("请第一步建立线性表\n");
    printf("1、建立线性表***********\n");
    printf("2、插入**********\n");
    printf("3、删除**********\n");
    printf("4、查找**********\n");
    printf("5、遍历输出********\n");
    printf("");
    printf("*6、退出**********\n");
}
int main()
{
    int num,length,number,location;//原来你定义了Location啊,只不过大小写。。。哎

    int i,e;
    int *data;
    data=(int*)malloc(sizeof(int));
    SqList *L;
    menu();
    while(1)
    {
        printf("请输入你的选择:\n");
        scanf("%d",&num);
        switch(num)
        {
            case 1:
                L=(SqList *)malloc(sizeof(SqList));
                printf("请输入线性表的长度");
                scanf("%d",&length);
                InitList(L,length);
                printf("依次输入线性表的%d个值",length);
                for(i=0;i<length;i++)
                    {
                    scanf("%d",&number);
                    L->data[i]=number;
                    }
                printf("输入完成");
                break;
                case 2:
                    printf("请输入你要插入的数值和位置");
                    scanf("%d %d",&e,&location);
                    if(Insert(L,location,e)==TRUE)
                        printf("插入成功");
                    else
                        printf("插入失败");
                    break;
                    case 3:
                        printf("请输入你要删除的节点数");
                        scanf("%d",&i);
                        if(DestroyList(L,i,data))
                            printf("删除成功,删除的节点数值为%d",number);
                        else
                            printf("删除失败");
                        break;
                        case 4:
                            printf("请输入你要查找的数值");
                            scanf("%d",&e);
                            Location=Locate(*L,e);// [Error] 'Location' was not declared in this scope  变量尚未声明定义不能使用

                            printf("你要查找的节点数值为%d",location);
                            break;
                            case 5:
                                for(i=0;i<=L->length;i++)
                                    printf("%d",L->data[i]);
                                break;
                                case 6:
                                    return 0;
    }
    }
    printf("\n");
    return 0;


}
图片附件: 游客没有浏览图片的权限,请 登录注册

程序员的编程字体、显示风格。非常重要。至少应保证这几个相近字符可以快速分辨。
至于你用的软件怎么修改。你想用什么样的字体和风格。自己去摸索吧。不会调整的就上网查。有问题找谷歌(不会翻墙就找百度)


φ(゜▽゜*)♪
2016-09-27 14:31
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
lL10Oo
lL10Oo 
恩,网站上的数字0和大写字母O在代码块里也没有处理地很人性化嘛。等我去给管理员提个意见去



φ(゜▽゜*)♪
2016-09-27 14:35
星野
Rank: 2
来 自:河北
等 级:论坛游民
帖 子:73
专家分:26
注 册:2016-4-13
收藏
得分:0 
回复 3楼 书生牛犊
   谢谢   其实我只是一个刚上大二的学生  现在只学了一个c,这学期才刚刚开了一个数据结构  什么都不懂 都要崩溃了  代码什么的  都看不懂!希望前辈多多关照
2016-09-28 18:15
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
回复 4楼 星野
不敢当,不敢当,我去年这个时候才开始看视频自学编程的。

盲人摸象,只是早了一点点而已,能力还是很薄弱的。






φ(゜▽゜*)♪
2016-09-29 17:32
快速回复:数据结构顺序链表c语言实现代码
数据加载中...
 
   



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

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