考研数据结构代码整理,都到考研证阶段了,主要自己留着看,就不做多解释了,如果初学者,可以参考其他的详细帖子。
自己敲得代码
#include<stdio.h> #include <stdlib.h> #define MaxSize 100 typedef int EleType; typedef struct { EleType data[MaxSize]; int length; } SqList; //初始化 void InitList(SqList &L) { if(&L==NULL) { return; } L.length=0; return; } //求长度 int LengthList(SqList &L) { if(&L==NULL) { return 0; } return L.length; } //插入 bool ListInsert(SqList &L,int i,EleType e) { int j; if(i<1||i>L.length+1) return false; if(L.length>MaxSize) return false; for(j=L.length; j>=i; j--) L.data[j]=L.data[j-1]; L.data[i]=e; L.length++; return true; } //删除 bool ListDelete(SqList &L,int i,EleType &e) { int j; if(i<1||i>L.length+1) return false; if(L.length>MaxSize) return false; for(j=L.length; j>=i; j--) L.data[j]=L.data[j-1]; L.data[i]=e; L.length++; return true; } //按位查找 int ListFind(SqList &L,EleType e) { int i; for(i=0; i<L.length; i++) if(L.data[i]==e) return i+1; return 0; } //按下标查找 int GetData(SqList &L,int i) { if(i<1||i>L.length+1) { return 0; } return L.data[i-1]; } //判断是否为空 bool EmptyList(SqList &L) { if (L.length==0) { return true; } return false; } //输出 void PrintList(SqList &L) { int i; if (EmptyList(L)) { printf("NULL\n"); return; } for (i=0; i<L.length; i++) { printf("%d",L.data[i]); printf("\n"); } } //注销表,貌似有点问题 求解决 void ClearList(SqList &L) { delete[] &L; return; } //插入 bool ListInsert_End(SqList &L,EleType e) { if(L.length>MaxSize) return false; L.data[L.length]=e; L.length++; return true; } int main() { SqList L; InitList(L); PrintList(L); ListInsert_End(L,1); ListInsert_End(L,2); ListInsert_End(L,3); ListInsert_End(L,4); ListInsert_End(L,5); ListInsert(L,2,9); PrintList(L); return 0; }