1.求二叉树中的节点个数//二叉树节点数 int NodeNum(BTNode *root) { if (root == NULL) //递归出口 return 0; return NodeNum(root->lchild) + NodeNum(root->rchild) + 1; //分别求左右子树节点数 }2.求二叉树的深度//二叉树深度 in...
#define MaxWeight 10 //图的邻接矩阵存储 typedef struct { int vex[MaxSize]; int Edge[MaxSize][MaxSize]; int vexnum, arcnum; } MGraph; //图的邻接表表示 //边表 typedef struct ArcNode { int adjvex; ...
1.二叉树的顺序存储#define MaxSize 100 struct TreeNode { ElemType value; //结点中的数据元素 bool isEmpty; //结点是否为空 }; TreeNode t[MaxSize]; for (int i = 0; i < MaxSize; i++) { t[i].isEmpty = true;...
//直接插入排序 void InsertSort(int data[], int n) { int i, j, temp; for (i = 1; i < n; i++) { //从第二个元素开始比较 if (data[i] < data[i - 1]) { //后一个元素与前一个元素比较 temp = data[i]; /...
1.KMP算法的核心,是一个记录最大公共前缀值的next数组。我觉得理解KMP的最大障碍就是很多人在看了很多关于KMP的文章之后,仍然搞不懂next数组中的值代表了什么意思。这里我们抛开所有的枝枝蔓蔓,先来解释一下这个数据到底是什么。对于字符串“abababca”,我们考虑它的公共前缀,我先解释一下字符串的前缀和后缀。如果字符串A和B,存在A=BS,其中S是任意的非空字符串,那就称B为A的前...