【数据结构】算法代码
线性表
顺序表
#define MaxSize 500
typedef struct{
ElemType *elem; //ElemType elem[MaxSize];
int lenth;
}SqList;
初始化
bool InitList(SqList &L){
L.elem=new ElemType[MaxSize];
//L.elem=(ElemType *)malloc(sizeof(ElemType)*InitSize);
if(!L.elem) return false;
L.length=0;
return triue;
}
取值
bool GetElem(SqList L,int i,ElemType &e){
if(i<1 || i>L.length) return false;
e=L.elem[i-1];
return true;
}
int LocateElem(SqList L,ElemType e){
for(int i=0;i<=L.length-1;i++)
if(L.elem[i]==e) return i+1;
return 0;
}
插入(
)
bool ListInsert(SqList &L,int i,ElemType e){
if(i<1 || i>L.length+1) return false;
if(i.length==MaxSize) return false;
for(int j=L.length-1;j>=i-1;j--)
L.elem[i-1]=e;
L.Length++;
return true;
}
删除(
)
bool ListDelete(SqList &L,int i)
if(i<1 || i>L.length) return false;
for(int j=i;j<L.length-1;j++)
L.elem[j-1]=L.elem[j];
L.length--;
return true;
}
单链表
双链表
静态链表
栈
顺序栈
链栈
队列(循环队列)
并查集
树
存储
二叉树
- 满二叉树
- 完全二叉树
- 线索二叉树
满二叉树
完全二叉树
线索二叉树
存储
图
查找
AVL
红黑树
B树
排序
- 直接插入排序
- 折半插入排序
- 希尔排序
- 冒泡排序
- 快速排序
- 简单选择排序
- 堆排序
- 归并排序
- 基数排序
- 外部排序