线性表

来源:互联网 发布:最新淘宝开店流程 编辑:程序博客网 时间:2024/06/05 14:10
#include <stdio.h>#include <stdlib.h>/* run this program using the console pauser or add your own getch, system("pause") or input loop */#define maxsize 200typedef int ElemType;typedef struct{ElemType elem[maxsize];int last;int length;}Sqelist;int setList(Sqelist *L){// L->elem=(ElemType*)malloc(maxsize*sizeof(ElemType));int i;printf("请输入线性表长度:");scanf("%d",&(L->length));printf("请输入线性表中元素:");for(i=0;i<L->length;i++){scanf("%d",&(L->elem[i]));}return 0;}//2.4int insertList(Sqelist *L,int x){int i,a;if(L->length==0){printf("线性表为空");exit(-1); }else {   L->length=L->length+1;   for(i=0;i<=L->length-1;){    if(L->elem[i]<=x){//线性表元素小于x, 数组后移 i++;    }    else break;   }   a=i;//a记录i    for(i=L->length-1;i>=a+1;i--){    L->elem[i]=L->elem[i-1];}L->elem[a]=x;}printf("插入x元素后的线性表为:"); for(i=0;i<=L->length-1;i++){printf("%d ",L->elem[i]);}return 0;}//2.5int deleteList(Sqelist *L,int i,int k){int j;if(L->length==0){printf("线性表为空");exit(-1); }else if(i<1||i>L->length||i+k>L->length){printf("i>线性表长度");exit(-1); }    else {    for(j=i;j<i+k;j++){    L->elem[j-1]=L->elem[k];    }    L->length=L->length-(1+k);    }    return 0;}//2.6int inversionList(Sqelist *L){Sqelist b;int i,j=0;b.length=L->length;if(L->length==0){printf("线性表为空");exit(-1); }else{for(i=0;i<L->length;i++){b.elem[b.length-(1+i)]=L->elem[i];}}for(i=0;i<=b.length-1;i++){printf("%d ",b.elem[i]);}return 0;}//2.6int ConvertList(Sqelist *L){int i,temp;if(L->length==0){printf("线性表为空");exit(-1); }else{for(i=0;i<=(L->length-1)/2;i++){temp=L->elem[i];L->elem[i]=L->elem[L->length-(1+i)];L->elem[L->length-(1+i)]=temp;}}for(i=0;i<L->length;i++){printf("%d ",L->elem[i]);} return 0;}int main() {Sqelist a;int i,k,x;scanf("%d",&i);scanf("%d",&k);setList(&a);deleteList(&a,i,k);//删除i-k的元素 printf("请输入要插入的元素x:");scanf("%d",&x);insertList(&a,x);//插入元素x inversionList(&a);ConvertList(&a);return 0;}
讨论技术欢迎加群:翻转世界IT 386707638
0 0
原创粉丝点击