数据结构c语言版_数据结构算法(C语言版)—顺序表的构建。

经过了一学期的数据结构(严蔚敏数据结构C语言版)的学习,也写了很多学到过的一些数据结构的算法。这些算法都是可以直接编译运行的,都是我一行一行的码出来的,经过了很多的调式,运行测试,最终得到的正确代码。希望我的分享可以为你的学习添加一份帮助,也希望你在数据结构的学习上更加努力。加油!因为这也是计算机考研必考的科目,所以,我们要好好努力!

顺序表的构建

#include#include#define MAXSIZE 20typedef int ElemType;typedef struct{ ElemType a[MAXSIZE];  int length;}SqList;SqList a,b,c;void creat_list(SqList *l);void out_list(SqList l);void insert_sq(SqList *l,int i,ElemType e);ElemType delete_sq(SqList *l,int i);int locat_sq(SqList l,ElemType e);int main(){int i,k,loc;ElemType e,x;char ch;    do{       printf("\n");       printf("\n  1.建立顺序表");       printf("\n  2.插入元素");       printf("\n  3.删除元素");       printf("\n  4.查找元素");       printf("\n  0.结束程序运行");       printf("\n============================");       printf("\n  请输入您的选择(1,2,3,4,0) \n");       scanf("%d",&k);       switch(k)        {case 1:{creat_list(&a);                 out_list(a);        } break;        case 2:{printf("\n 请输入插入位置(大于等于1,小于等于%d):",a.length+1);                scanf("%d",&i);                printf("\n 请输入要插入元素值:");                scanf("%d",&e);                insert_sq(&a,i,e);                out_list(a);        } break;        case 3:{printf("\n 请输入要删除的元素的位置(大于等于1,小于等于%d):",a.length);                scanf("%d",&e);                x=delete_sq(&a,e);                out_list(a);                if(x!=-1) printf("\n删除的元素为:%d\n",x);                else printf("要删除的元素不存在!");        } break;        case 4:{printf("\n 请输入要查找元素值:");                  scanf("%d",&e);                loc=locat_sq(a,e);                if(loc==-1) printf("\n未找到指定元素!");                else printf("已找到,元素位置是%d",loc);        }break;        }/*switch*/    }while(k!=0);    printf("\n         按Enter键,返回...");//    ch=getchar();    }/*  main*/     /*建立顺序表*/ void  creat_list(SqList *l){ int i;     printf("请输入顺序表的长度:");     scanf("%d",&l->length);     for(i=0;ilength;i++)     {  printf("数据 %d=",i);         scanf("%d",&(l->a[i]));      }}/*creat_list*//*输出顺序表*/void out_list(SqList l){int i; for(i=0;i<=l.length-1;i++)     printf("%10d",l.a[i]);}/*out_list*//*在顺序表的第i个位置插入元素e*/void insert_sq(SqList  *l,int i,ElemType e){   int j;    if(l->length==MAXSIZE) printf("顺序表已满!\n");    else if (i<1||i>l->length +1) printf("输入位置错误\n");    else{       for(j=l->length-1;j>=i-1;j--) l->a[j+1]=l->a[j];         l->a[i-1]=e;         l->length++; }}/*insert_sq*//*删除第i个元素,返回其值*/ElemType delete_sq(SqList  *l,int i){ElemType x;int j;   if (l->length==0) printf("空表!\n");   else if(i<1||i>l->length)   {      printf("输入位置错误\n");               x=-1;   }  else{ x=l->a[i-1];       for(j=i;j<=l->length-1;j++)           l->a[j-1]=l->a[j];       l->length--;      }  return(x);}/*delete_sq*//*查找值为e的元素,返回它的位置*/int locat_sq(SqList l,ElemType e){     int i=0;      while(i<=l.length-1 &&l.a[i]!=e) i++;      if(i<=l.length-1) return(i+1);      else return(-1);}/* locat_sq*/

当然这只是第一篇算法,后面还会继续更新很多数据结构的算法!另外我把很多算法已经放到我的小程序中了,在小程序中就可以直接打开使用。在下方链接可以直接跳转到我的小程序中,在这里面有很多的算法和一些非常有意思的功能哦!!!

在后期我会更新很多关于计算机学科的一些学习方法和学习资料,一些四六级的资料和计算机等考研资料。还会分享一些有意思的代码,无论如何,希望你们在我这里能高高兴兴的玩,快快乐乐的学习。

我知道你在看

520ebcca3d1b0ce80f928163eb3bc2c1.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值