千家信息网

如何理解C语言代码中的描述顺序线性表

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,本篇文章给大家分享的是有关如何理解C语言代码中的描述顺序线性表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。代码内容包括:1.表的创建2
千家信息网最后更新 2025年11月11日如何理解C语言代码中的描述顺序线性表

本篇文章给大家分享的是有关如何理解C语言代码中的描述顺序线性表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

代码内容包括:

1.表的创建

2.增删改查插

3.界面跳转

代码实现如下:

#include #include#define MaxSize 20typedef int ElemType;//将int类型赋予别名//创建结构体typedef struct{ElemType A[MaxSize];//MaxSize是给表的一个预估容量int n;//n是指当前A的元素个数,记录当下表的大小}seqList,*pSeqList;//给结构体赋予名字以及创建一个结构体类型的指针//函数声明void ADD(pSeqList L);void Delete(pSeqList L);void Insert(pSeqList L);void welcome(pSeqList L);void Correct(pSeqList L);void search(pSeqList L);void view(pSeqList L);//表的创建pSeqList CREATE(){pSeqList L;L=(pSeqList)malloc(sizeof(seqList));if(L==NULL){printf("Failure\n");//判断创建是否成功return 0;}else{printf("success!");L->n=0;}return L;}//主函数int main(){pSeqList head;head=CREATE();welcome(head);system("pause");return 0;}//增添元素void ADD(pSeqList L){        system("cls");        int k;        for(k=0;kn;k++){        printf("第%d个元素:%d\n",k+1,L->A[k]);        }        int adder;        int choose=0;        do{        if(L->n==MaxSize){        printf("表已满,无法添加!\n");        }        else{        printf("添加元素:");    scanf("%d",&adder);        L->A[L->n]=adder;        L->n++;        printf("已成功添加:%d 添加后元素个数为:%d\n\n",L->A[(L->n)-1],L->n);        }printf("是否继续添加?\n1、继续添加   2、返回主界面\n");scanf("%d",&choose);system("cls");//表示将当前页面清空}while(choose==1);        if(choose==2){        welcome(L);}        else welcome(L);}//删除void Delete(pSeqList L){        int j;        int k;        int i;        int choose=0;        for(k=0;kn;k++){        printf("第%d个元素:%d\n",k+1,L->A[k]);        }        do{        system("cls");        printf("删除界面\n");        for(k=0;kn;k++){        printf("第%d个元素:%d\n",k+1,L->A[k]);        }        if(L->n==NULL){        printf("表为空!");        break;        }        printf("请输入你要删除第几个元素:");        scanf("%d",&i);        if(i<1||i>L->n){        printf("\n删除的数据位置有误!\n");        }        else{                for(j=i;j<=L->n-1;j++)                    L->A[j-1]=L->A[j];                L->n--;                printf("删除成功!\n");        }        printf("删除后的元素为:\n");        for(k=0;kn;k++){        printf("第%d个元素:%d\n",k+1,L->A[k]);        }        printf("是否继续删除?\n1.继续删除  2.返回主界面\n");        scanf("%d",&choose);}while(choose==1);        if(choose==2){        welcome(L);}        else welcome(L);}//插入元素void Insert(pSeqList L){int i;int item;int j;int choose=0;int choosex;int k;system("cls");if(L->n==NULL){                        printf("\n\n\n元素为空!是否添加元素?1.是  2.返回主菜单");                        scanf("%d",&choosex);                        if(choosex==1)                        {                                ADD(L);                        }                        else welcome(L);                }for(k=0;kn;k++){        printf("第%d个元素:%d\n",k+1,L->A[k]);        }do{printf("插入元素\n");if(L->n==MaxSize){printf("表满!\n");break;}printf("请输入你想插入的位置:");scanf("%d",&i);system("cls");if(i<1||i>L->n+1){printf("\n插入位置错误!\n");}printf("请输入你想插入的数据:");scanf("%d",&item);for(j=L->n-1;j>i-2;j--)                L->A[j+1]=L->A[j];L->A[i-1]=item;L->n++;printf("插入成功!插入后的数据为;\n");for(k=0;kn;k++){        printf("第%d个元素:%d\n",k+1,L->A[k]);        }printf("\n是否继续插入?\n1.继续插入  2.返回主界面");scanf("%d",&choose);}while(choose==1);        if(choose==2){        welcome(L);}        else welcome(L);}//修改元素void Correct(pSeqList L){        int cn;        int item;        int k;        int choose;                system("cls");                if(L->n==NULL){                        printf("\n\n\n元素为空!是否添加元素?1.是  2.返回主菜单");                        scanf("%d",&choose);                        if(choose==1)                        {                                ADD(L);                        }                        else welcome(L);                }                //*******************************************           for(k=0;kn;k++)          {       printf("第%d个元素:%d\n",k+1,L->A[k]);       }           //********************************************           do{              printf("请输入你要修改的元素序号:");              scanf("%d",&cn);              if(cn<1||cn>L->n){                          printf("输入错误请重新输入:");                  }           }while(cn<1||cn>L->n);        printf("\n请输入你想修改成的数据:");        scanf("%d",&item);        L->A[cn-1]=item;        system("cls");        printf("修改后的数据为:\n");        for(k=0;kn;k++)        {        printf("第%d个元素:%d\n",k+1,L->A[k]);        }        printf("是否继续修改?1.是  2.返回主菜单");        scanf("%d",&choose);        if(choose==1){        Correct(L);        }        else welcome(L);}//查找元素void search(pSeqList L){        int mchoose;        int choose;        int choose1;        int choose2;        int num;        int item;        int i;        int j=0;        system("cls");        if(L->n==NULL){                        printf("\n\n\n元素为空!是否添加元素?1.是  2.返回主菜单");                        scanf("%d",&choose);                        if(choose==1)                        {                                ADD(L);                        }                        else welcome(L);                }        printf("*****查找方式选择*****\n\n1.输入序号以寻找对应数据\n2.输入数据找到对应的序号\n3.返回主菜单\n");        scanf("%d",&mchoose);        system("cls");        if(mchoose==3){        welcome(L);        }        if(mchoose==1)        {                do                {             printf("请输入序号:");             scanf("%d",&num);             printf("序号:%d 数据:%d\n",num,L->A[num-1]);             printf("1.继续输入  2.返回上一级");                 scanf("%d",&choose2);            }while(choose2==1);           if(choose2!=1)           {           search(L);           }        }        else if(mchoose==2)        {                do           {                printf("请输入数据:");            scanf("%d",&item);                for(i=0;in;i++)                {                        if(item==L->A[i])                        {                        printf("元素:%d  序号:%d\n",i+1,item);j=1;                        }                }                if(j==0){printf("您输入的元素不存在!");}        printf("1.继续输入  2.返回上一级");                scanf("%d",&choose1);            }while(choose1==1);           if(choose1!=1){           search(L);           }        }        else         {       search(L);        }}//浏览全部元素void view(pSeqList L){        int k;        char choose[10];        int choosey;        if(L->n==NULL)          {                        printf("\n\n\n元素为空!是否添加元素?1.是  2.返回主菜单");                        scanf("%d",&choosey);                        if(choosey==1)                        {                                ADD(L);                        }                        else welcome(L);                }        for(k=0;kn;k++)          {       printf("第%d个元素:%d\n",k+1,L->A[k]);       }        printf("输入任意字符以返回菜单");        scanf("%s",choose);        getchar();        if(choose!=NULL)        {                welcome(L);        }}//欢迎界面void welcome(pSeqList L){        pSeqList head;        head=L;        int welchoose=0;        system("cls");printf("\t\t\t\***************************************\n");printf("\t\t\t\t\t顺序表功能选择\n");printf("\t\t\t\t\t1.添加元素\n");printf("\t\t\t\t\t2.删除元素\n");printf("\t\t\t\t\t3.插入元素\n");printf("\t\t\t\t\t4.修改元素\n");printf("\t\t\t\t\t5.查找元素\n");printf("\t\t\t\t\t6.浏览元素\n");printf("\t\t\t\***************************************\n");scanf("%d",&welchoose);switch(welchoose){case 1:ADD(head);break;case 2:Delete(head);break;case 3:Insert(head);break;case 4:Correct(head);break;case 5:search(head);break;case 6:view(head);break;default :printf("输入错误!");main();break;}}

以上就是如何理解C语言代码中的描述顺序线性表,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0