【数据结构】采用数组的形式实现顺序表的建立、插入、删除等操作
发布时间:2020-12-15 06:32:44 所属栏目:安全 来源:网络整理
导读:#includestdio.htypedef int ElemType;typedef int Status;#define Max 100#define ERROR 0#define OVERFLOW -2#define OK 1//存储结构typedef struct {ElemType elem[Max];int length;}SqList;SqList L;//初始化void InitSqList(int size){int i;int x;L.le
#include<stdio.h> typedef int ElemType; typedef int Status; #define Max 100 #define ERROR 0 #define OVERFLOW -2 #define OK 1 //存储结构 typedef struct { ElemType elem[Max]; int length; }SqList; SqList L; //初始化 void InitSqList(int size){ int i; int x; L.length = size; for(i=0;i<size;i++){ printf("请输入顺序表中第%d的元素:",i+1); scanf("%d",&x); L.elem[i] = x; } } //顺序表长度 Status GetLength(SqList &L){ return L.length; } //遍历顺序表 void PrintSqList(SqList &L){ printf("顺序表数据如下:n"); for(int i=0;i<L.length;i++){ printf("%4d",L.elem[i]); } printf("n"); } //在顺序表中插入元素 Status InsertSqList(SqList &L,int i,ElemType e){ //判断i的位置是否合法 if(i<1 || i>L.length) return ERROR; // if(L.length > Max) return OVERFLOW; //插入位置i后的数据右移 for(int j = L.length;j >= i;j--){ L.elem[j] = L.elem[j-1]; } L.elem[j] = e; //表长加1 L.length++; return OK; } //在顺序表中删除元素 Status DeleteSqList(SqList &L,int i){ //判断i的位置是否合法 if(i<1 || i>L.length) return ERROR; //删除位置之后的数据整体左移 for(int j=i;j<=L.length;j++){ L.elem[j-1] = L.elem[j]; } L.length--; return OK; } //在顺序表中查找i的值 Status LocateSqList(SqList &L,int i){ return L.elem[i-1]; } //在顺序表中查找数据为x的位置 Status LocateSqList_2(SqList &L,ElemType e){ for(int i=0;i<=L.length;i++){ if(L.elem[i] == e){ return i; } } return -1; } void main(){ int i,j,h,k; int x,y; printf("请输入你顺序表的长度:"); scanf("%d",&i); InitSqList(i); PrintSqList(L); printf("顺序表的长度:%d",GetLength(L)); printf("n"); printf("请输入你要插入的数据的位置:n"); scanf("%d",&j); printf("再输入你要插入的数据:n"); scanf("%d",&x); InsertSqList(L,x); printf("插入数据之后的顺序表如下:n"); PrintSqList(L); printf("插入数据之后顺序表的长度:%d",GetLength(L)); printf("n"); printf("请输入你要删除的数据的位置:n"); scanf("%d",&h); DeleteSqList(L,h); printf("删除数据之后的顺序表如下:n"); PrintSqList(L); printf("n"); printf("请输入你要查找数据的位置:n"); scanf("%d",&k); int value = LocateSqList(L,k); printf("查找的值为:%dn",value); printf("请输入你要查找数据的值:n"); scanf("%d",&y); int lag = LocateSqList_2(L,y); printf("数据%d的位置为:%dn",y,lag); printf("n"); }
By Mr.Z (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |