吼,数据结构上机课1
唔,好歹是学到了新东西,不慌。
#include<stdio.h> #include<stdlib.h> #include<malloc.h> #define M 20 typedef int ElemType; typedef struct S { ElemType elem[M]; int l; }S; int inits(S &L) //初始化 {L.l=0; return 1;} int finds(S &L,int x) //查找 { int i=0; while(i<L.l&&L.elem[i]!=x) i++; if(i>=L.l) {printf("顺序表中不存在该元素!\n"); return 0;} else return i+1; } int inserts(S &L,int i,int x) //插入 { int j; if(L.l>=M) {printf("顺序表已满,无法进行插入操作!\n"); return 0;} if(i<=0||i>L.l+1) {printf("插入位置不正确!\n"); return 0;} for(j=L.l-1;j>=i-1;j--) {L.elem[j+1]=L.elem[j];} L.elem[i-1]=x; L.l++; return 1; } int deletes(S &L,int i) //删除 { int j; if(i<1||i>L.l) {printf("删除位置不正确!\n"); return 0;} for(j=i;j<L.l;j++) L.elem[j-1]=L.elem[j]; L.l--; return 1; } int prints(S L) //输出 { int i; for(i=0;i<L.l;i++) printf("%d",L.elem[i]); printf("\n"); return 1; } void main() { S L; ElemType e,x; int i=1,k,j; inits(L); printf("初始化\n建立顺序表如下:\n"); //不用自己手动输入 inserts(L,1,1); inserts(L,2,2); inserts(L,3,3); inserts(L,4,4); prints(L); while(i<=3) { printf("\n 主菜单 \n"); printf(" 1 查找指定元素 \n"); printf(" 2 插入元素到指定位置 \n"); printf(" 3 删除某一指定位置元素 \n"); printf(" 0 结束程序 \n"); printf("--------------------------------------\n"); printf("请输入您选择的菜单号<1,2,3,0>:"); scanf("%d",&i); switch(i) { case 1: printf("请查找元素:"); scanf("%d",&x); j=finds(L,x); if(j) printf("指定元素位置=%d\n",j); break; case 2: printf("请输入插入元素位置:"); scanf("%d",&k); printf("请输入插入元素值:"); scanf("%d",&x); j=inserts(L,k,x); if(j) {printf("插入后顺序表如下所示:\n"); prints(L);} break; case 3: printf("请输入删除元素位置:"); scanf("%d",&k); j=deletes(L,k); if(j!=0) {printf("删除后顺序表如下所示:\n"); prints(L);} break; case 0: exit(0); break; default: printf("输入有误!\n"); } } }
格式更加合理了叭……就
还学到了ElemType的使用嘞,不戳!
终于回忆起来我的博客园了嘻嘻,学校机房有的登陆不上啊啧啧啧,为数不多的保存机会咯!