1.算法
1.1排序
1.1.1桶排序
1.1.2冒泡排序
1.1.3快速排
1.2匹配
KMP算法
2.数据结构
2.1线性表
顺序表:
#define MaxSize 100 //最大元素个数 typedef int ElemType; typedef struct { ElemType data[MaxSize]; //存放顺序表中元素 int length; //存放顺序表的长度 }SqList; //顺序表的类型定义 //初始化顺序表 void InitList(SqList *&L) { L=(SqList *)malloc(sizeof(SqList)); L->length=0; } //由a中的n个元素建立顺序表 void CreateList(SqList *&L, ElemType a[], int n) { int i; L=(SqList *)malloc(sizeof(SqList)); for (i = 0; i < n; i++) L->data[i] = a[i]; L->length = n; } free(L); //销毁顺序表 L->length==0;//判断顺序表是否为空 L->length;//求顺序表的长度 //输出顺序表 void DispList(SqList *L) { int i; for(i=0;i<L->length;i++) printf("%d ",L->data[i]); printf("\n"); } //求顺序表中某个位置的值 bool GetElem(SqList *L,int i,ElemType &e) { if(i<1||i>L->length) return false; e=L->data[i-1]; return true; } //查找顺序表中第一个值域与e相等的元素的逻辑符号 int LocateElem(SqList *L,ElemType e) { int i=0; while(i<L->length&&L->data[i]!=e) i++; if(i>=L->length) return 0; else return i+1; } //插入元素 bool ListInsert(SqList *&L,int i,ElemType e) { int j; if(i<1||i>L->length) return false; i--; 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,ElemType &e) { int j; if(i<1||i>L->length) return false; i--; e=L->data[i]; for(j=i;j<L->length-1;j++) L->data[j]=L->data[j+1]; L->length--; return true; }