一、 树关键字
m 阶 n 层的
树
DANGER
本文
最多关键字求法
例: 一棵 3 阶 5 层(根为第一层,叶子为第五层)的
树,至多有 80 个关键字。 解:
最少关键字求法
例: 一棵 3 阶 5 层(根为第一层,叶子为第五层)的
树,至多有 80 个关键字。 解:
二、树的度与边的关系
树的度为子节点数,这里与离散数学所讲的不同
各节点度数和为边数,因为叶子节点度为 0
例: 一颗三叉树,度为 1 的节点有 4 个,度为 2 的节点为 5 个,度为 3 的节点为 6 个,问度为 0 的节点数是多少? 解:
三、哈希表
除留余数法是
, 为比表长小的质数。 散列处理冲突是
, 是表长,这样才能保证整个表被覆盖满。
四、迪杰斯特拉算法
画表
序号 | 路径 | B | C | D | E | F |
---|---|---|---|---|---|---|
初始 | 20 | 16 | ||||
1 | ||||||
2 |
五、二叉树根据遍历画形状
前序或后序遍历确定根节点
中序遍历确定左右子树
六、快速排序
每选一个枢轴,就执行一轮,以递归的层次逐级深入。
七、算法
单链表
cpp
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode* next;
}LNode, *LinkList;
二叉树
cpp
typedef int TElemType;
typedef struct BiTNode
{
TElemType data; // 数据
struct BiTNode *lchild, *rchild; // 左右指针
} BiTNode, *BiTree;
二叉树求带权路径长度
c
status func(T& root,int& depth;int& sum){
sum+=depth*root->weight;
func(root->left,++depth;sum);
depth--;
func(root->right, ++depth;sum);
}