• 数据结构实验1——顺序表


    <span style="font-size:18px;">#include <stdio.h>
    #include <stdlib.h>
    #define M 100
    int flag=0;
    typedef struct Seqlist
    {
        int elem[M];
        int length;
    }Seqlist;
    void menu()
    {
        printf("	顺序表的基本操作实验		
    ");
        printf("*****************************************
    ");
        printf("*请选择命令序号(0——7):		*
    ");
        printf("*1 创建顺序表;				*
    ");
        printf("*2 顺序表插入;				*
    ");
        printf("*3 顺序表删除;				*
    ");
        printf("*4 顺序表长度;				*
    ");
        printf("*5 顺序表是否为空;			*
    ");
        printf("*6 顺序表查找;				*
    ");
        printf("*7 顺序表输出;				*
    ");
        printf("*0 程序退出;				*
    ");
        printf("*****************************************
    ");
    }
    void Initlist(Seqlist *l)
    {
        (*l).length=0;
    }
    int Creatlist(Seqlist *l)
    {
        int i,n=0;
        if(l->length>0)
        {
            printf("线性表已经存在,不需要再创建!
    ");
            return 0;
        }
        printf("请输入线性表的长度:
    ");
        while(n<1||n>M)
            scanf("%d",&n);
        for(i=0;i<n;i++)
            scanf("%d",&l->elem[i]);
        l->length=n;
        flag=1;
        return 1;
    }
    int Insertlist(Seqlist *l,int i,int e)
    {
        int k;
        if(l->length>=M)
            printf("空间不足,请补充空间!
    ");
        else if(i>l->length)
            printf("插入位置有误!
    ");
        else
        {
            for(k=l->length-1;k>i-1;k--)
                l->elem[k+1]=l->elem[k];
            l->elem[k]=e;
            l->length++;
            printf("插入顺序表成功!
    ");
        }
        return 1;
    }
    int Dellist(Seqlist *l,int i)
    {
        int k;
        if(l->length<i)
            printf("无法进行删除操作!
    ");
        else
        {
            for(k=i-1;k<l->length-1;k++)
                l->elem[k]=l->elem[k+1];
            l->length--;
            printf("删除成功!
    ");
        }
        return 1;
    }
    int Lengthlist(Seqlist l)
    {
        if(flag==0)
        {
            printf("此表未创建,因此没有长度!
    ");
            return 0;
        }
        else
        {
            printf("顺序表的长度为:%d
    ",l.length);
            return 1;
        }
    }
    void Emptylist(Seqlist l)
    {
        if(flag==0)
            printf("顺序表未创建,不能判断是否为空表!
    ");
        else
        {
            if(l.length==0)
                printf("顺序表为空表!
    ");
            else
                printf("顺序表不是空表!
    ");
        }
    }
    void Findlist(Seqlist l,int e)
    {
        int i=0;
        while((l.elem[i++]!=e)&&(i<l.length));
        if(i==l.length)
            printf("顺序表中不存在这个元素!
    ");
        else
            printf("所查找的元素在顺序表中的第%d个
    ",i);
    }
    void Displaylist(Seqlist l)
    {
        int i;
        if(flag==0)
            printf("顺序表未创建,无法输出!
    ");
        else if(l.length==0)
            printf("顺序表为空!
    ");
        else
        {
            for(i=0;i<l.length;i++)
            {
                printf("%d	",l.elem[i]);
                if(i==5)
                    printf("
    ");
            }
            printf("
    ");
        }
    }
    
    int main()
    {
        Seqlist l;
        int i,select,e;
        Initlist(&l);
        while(1)
        {
            menu();
            printf("请输入命令号:(0——7):
    ");
            scanf("%d",&select);
            switch(select)
            {
            case 1:
                Creatlist(&l);
                break;
            case 2:
                if(flag==0)
                    printf("顺序表未创建,不能插入!
    ");
                else
                {
                    printf("请输入要插入的位置:
    ");
                    scanf("%d",&i);
                    printf("请输入要插入的数据:
    ");
                    scanf("%d",&e);
                    Insertlist(&l,i,e);
                }
                break;
            case 3:
                if(flag==0)
                    printf("顺序表未创建,不能删除!
    ");
                else
                {
                    printf("请输入要删除的位置:
    ");
                    scanf("%d",&i);
                    Dellist(&l,i);
                }
                break;
            case 4: Lengthlist(l);break;
            case 5: Emptylist(l);break;
            case 6:
                if(flag==0)
                    printf("顺序表未创建,不能进行查找!
    ");
                else
                {
                    printf("请输入要查找的元素值:
    ");
                    scanf("%d",&e);
                    Findlist(l,e);
                }
                break;
            case 7: Displaylist(l);break;
            case 0: exit(1);break;
            default :
                printf("输入命令有错!请重新输入:
    ");
                break;
            }
        }
        return 0;
    }</span>
    

  • 相关阅读:
    【机器学习】sklearn之生成三类数据用于聚类,python
    【机器学习】sklearn之生成环形和半环型数据,python
    【机器学习】sklearn之创建数据集,python
    【python】使用plotly画三维立体高逼格图,数据可视化
    【python】使用jieba中的textrank提取文本/文章关键词,超简单!
    【python】使用jieba提取文本关键词,超简单!
    【机器学习】gensim.models.Word2Vec()参数的详细解释,python
    XP系统老电脑如何安装Linux系统
    PHP中派生是什么?
    MySQL中CURD是什么?
  • 原文地址:https://www.cnblogs.com/abc-24990/p/4257539.html
Copyright © 2020-2023  润新知