顺序表
P18
例1
1 | bool del_Min(SqList &L,ElemType &value){ |
例2
1 | void reverse(SqList &L){ |
例3
1 | void del_allX(SqList &L, ElemType x){ |
例4
1 | bool del_sTot(SqList &L, ElemType s,ElemType t){ |
例5
1 | bool del_sTot(SqList &L, ElemType s,ElemType t){ |
例6
1 | bool delSame(SqList &L){ |
例7
1 | bool combinedAB(SqList A,SqList B,SqList &C){ |
例8
1 | typedef int DataType; |
例9
1 | typedef int DataType; |
例10
1 | typedef int DataType; |
例11
1 | typedef int DataType; |
链表
P37
1 | typedef int ElemType; |
例1
1 | void delX_no_head(LinkList &L,ElemType x){ |
例2
1 | void delX_head(LinkList &L, ElemType x){ //引用加不加无所谓,加的话免得深度拷贝 |
例3
1 | void printReverse(LinkList L){ |
例4
1 | void delMin(LinkList &L){ //引用无所谓 |
例5
1 | void reverse(LinkList &L){ //引用无所谓 |
例6
1 | //使用辅助空间 |
栈
已知入栈顺序,计算出栈可能性
动规:f(n,m)表示n个待入栈,m个已入栈
f(n,m)=f(n-1,m+1)+f(n,m-1)表示当前状态只会出现两种情况:
①一个进栈
②一个出栈
二者取其一
结束条件:
n=0,f=1;
m=0,f(n,m)=f(n-1,1); //只能入栈,不能出栈
1 | int popStackResult(int n,int m){ |
P67
例3
1 |
|
例4
1 |
|
例5
1 | const int MaxSize=20; |
队列
P78
例1
1 | typedef int ElemType; |
例2
1 |
|
例3
1 | //S1执行入队,S2执行出队 |
栈和队列的应用
P87
例1
1 |
|
例2
1 |
|
例3
1 |
|
例4
1 |
|
数组与广义表
稀疏矩阵
三元组表示的矩阵转置与乘积
1 |
|
二叉树
1 | bool findCommonAncestor(SqBiTree T, int i,int j,ElemType &e){ |