用C实现了简单的顺序表

来源:互联网 发布:ubuntu samba 写权限 编辑:程序博客网 时间:2024/05/16 05:54

用C实现了简单的顺序表,严蔚敏版的,第一步独立完成

#include<stdio.h>#include<stdlib.h>#include<malloc.h>#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define OVERFLOW -1;#define OK 0;typedef int ElemType;//为什么要重命名int //顺序表定义 typedef struct{ElemType *elem;int length;int listsize;}SqList;//初始化顺序表 int InitList(SqList *L){L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));//if(!(L->elem))exit(OVERFLOW);L->length=0;L->listsize=LIST_INIT_SIZE;return OK;}//查找元素int Compare(SqList *L,ElemType e){int i;for(i=0;i<L->length;i++){if(L->elem[i]==e)break;}return i;} //插入元素SqList *Insert(SqList *L,ElemType e,int pos){int i;for(i=L->length;i>=pos+1;i--){L->elem[i]=L->elem[i-1];}L->elem[pos]=e;L->length++;return L;} //删除元素SqList *Delet(SqList *L,int pos){int i;for(i=pos;i<L->length;i++){L->elem[i]=L->elem[i+1];}L->length--;return L;} int main(){int i;ElemType j;SqList L;InitList(&L);//L.elem[0]=1;printf("L->elem=%d\n",*(L.elem));printf("L->length=%d\n",L.length);printf("L->listsize=%d\n",L.listsize);//重新给顺序表赋值 for(i=0;i<10;i++){L.elem[i]=i;}L.length=10;//查找顺序表中是否有等于5的元素j=5;i=Compare(&L,j);if(i)printf("found in L.elem[%d]\n",i);printf("%d\n",L.elem[4]);        //将11插入顺序表的第十一位j=10;Insert(&L,j,10); printf("insert:\n");for(i=0;i<L.length;i++){printf("%d ",L.elem[i]);}printf("\n");//将第0个元素删除Delet(&L,0); printf("delete:\n");for(i=0;i<L.length;i++){printf("%d ",L.elem[i]);}printf("\n");getchar();getchar();getchar();    return 0;    }
0 0