摘要:
哈夫曼树 带权路径长度(WPL):设二叉树有n个叶子结点,每个叶子结点带有权值W(k),从根结点到每个叶子结点的长度为l(k),则每个叶子结点的带权路径长度之和就是 最优二叉树或哈夫曼树:WPL最小的二叉树 特点 没有度为1的结点 n个叶子结点的哈夫曼树共有2n-1个结点 哈夫曼树的任意非叶节点的左 阅读全文
摘要:
堆 优先队列:特殊的队列,取出元素的顺序是依照元素的优先权大小,而不是元素进入队列的先后顺序。 采用数组或链表实现优先队列的时间复杂度 1. 数组: 插入-元素总是插入尾部 O(1) 删除-查找最大(最小)关键字 O(n) 从数组中删除需要移动的元素 O(n) 2. 链表 插入-元素总是插入链表的头 阅读全文
摘要:
二叉搜索树 1. 非空左子树的所有键值小于其根结点的键值 2. 非空右子树的所有键值小于其根结点的键值 3. 左右子树都是二叉搜素树 二叉搜索树操作函数 1.Posltion Find(ElementType X, BinTree BST); //从二叉搜索树BST中查找元素X,返回其所在结点的地址 阅读全文
摘要:
查找 根据某个给定关键字K,从集合R中找出关键字与K相同的记录 静态查找:集合记录是固定的->没有插入和删除操作,只有查找 动态查找:集合中记录是动态变化的->除查找,还可能发生插入和删除 静态查找 顺序查找,时间复杂度为O(n) int SequentialSearch(StaticTable * 阅读全文
摘要:
队列,先来先服务,先进先出 具有一定操作约束的线性表 只能在一端插入,而在另一端删除 操作集 Queue CreatQueue(int MaxSize):生成长度为MaxSize的队列 int IsFullQ(Queue Q,int MaxSize):判断队列Q是否已满 void AddQ(Queu 阅读全文
摘要:
堆栈的抽象数据类型描述 数据对象集:一个有0个或多个元素的有穷线性表 操作集:长度为MaxSize的堆栈S属于Stack, 堆栈元素iteam属于ElementType Stack CreateStack(int MaxSize): 生成空堆栈,其最大长度为MaxSize int IsFull(St 阅读全文
摘要:
广义表 广义表是线性表的推广 对于线性表而言,n个元素都是基本的单元素 广义表中,这些元素不仅仅可以是单元素也可以是另一个广义元素 typedef struct GNode *GList; struct GNode{ int Tag; //标志域 0表示结点是单元素 1表示结点时广义表 union{ 阅读全文
摘要:
为什么需要中断,异常和系统调用 计算机运行中,内核是被信任的第三方 内核可以对操作系统做任何控制 只有内核可以执行特权指令 方便应用程序 中断和异常希望解决的问题 当外设连接计算机时,会出现什么现象 当应用程序处理意想不到的行为时,会出现什么现象 系统调用希望解决的问题 用户应用程序是如何得到系统服 阅读全文
摘要:
线性表 由同类型数据元素构成有序序列的线性结构 表中元素个数称为线性表的长度 线性表没有元素时,称为空表 表起始位置称表头,表结束位置称表尾 线性表的抽象数据类型描述 线性表是n个元素构成的有序序列 线性表基本操作 List MakeEmpty() 初始化一个空线性表L List MakeEmpty 阅读全文