首页 > 代码库 > 顺序链表——数据结构start!
顺序链表——数据结构start!
1 #include <iostream> 2 3 using namespace std; 4 //顺序链表 5 #define MAXSIZE 20 6 #define OK 1 7 #define ERROR 0 8 #define TRUE 1 9 #define FALSE 010 typedef int ElemType;11 typedef int Status;12 typedef struct13 {14 ElemType data[MAXSIZE];15 int length;16 }SqList;17 18 //初始化19 void InitSqlist(SqList *L){20 L->length=0;21 }22 //获取长度23 Status GetLength(SqList L){24 return L.length;25 }26 //获取操作27 Status GetElem(SqList L, int i, ElemType *e){28 if(L.length==0 || i<1 || i>L.length)29 return ERROR;30 *e = L.data[i-1];31 return OK;32 }33 //插入操作34 Status ListInsert(SqList *L, int i, ElemType e){35 int k;36 if(L->length == MAXSIZE)37 return ERROR;38 if(i<1 || i>L->length+1)39 return ERROR;40 if(i<=L->length){41 for(k=L->length-1; k>=i-1; k--){42 L->data[k+1]=L->data[k];43 }44 }45 L->data[i-1]=e;46 L->length++;47 return OK;48 }49 //删除操作50 Status ListDelete(SqList *L, int i, ElemType *e){51 int k;52 if(L->length == 0)53 return ERROR;54 if(i<1 || i>L->length)55 return ERROR;56 *e=L->data[i-1];57 if(i<L->length){58 for(k=i; k<L->length; k++){59 L->data[k-1]=L->data[k];60 }61 }62 L->length--;63 return OK;64 65 }66 int main()67 {68 SqList myList;69 int del=0, get=0;70 int pos;71 InitSqlist(&myList);72 for(int i=1; i<=10; i++){73 if(ListInsert(&myList, i, i)==OK)74 cout << "insert:" << i << endl;75 }76 cout <<"输入删除位置:"<<endl;77 cin >> pos;78 if(ListDelete(&myList, pos, &del)==OK)79 cout << "Delete:" << del << endl;80 cout << "All Elem:"<<endl;81 for(int i=1; i<=GetLength(myList); i++){82 if(GetElem(myList, i, &get)==OK)83 cout << get << ‘ ‘;84 }85 86 return 0;87 }
顺序链表——数据结构start!
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。