{90,60,20,50,40,30,10,110,70,120,80}的平衡二叉树构造过程

依次把结点{50,90,130,30,70,60}插入到初始状态为空嘚平衡二叉树中,使得在每次插入后保持该树仍然是平衡二叉树依次画出每次插入后所形成的平衡二叉树。... 依次把结点{50,90,130,30,70,60}插入到初始状态为涳的平衡二叉树中,使得在每次
插入后保持该树仍然是平衡二叉树依次画出每次插入后所形成的平衡二叉树。

你对这个回答的评价是

下載百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

数据结构与算法 (第三部分 数据結构) 胡学钢 计算机与信息学院 2009年10月 使用指针表示动态集合 栈、队列、链表、有根树等 第三部分 数据结构 第十章 基本数据结构 栈和队列(簡要回顾) 10.1 栈和队列 栈的定义 栈是只能在一端插入和删除元素的线性表 术语:栈顶, 栈底, 入栈(压栈), 出栈(弹栈) 10.1栈和队列 栈的运算 1.栈嘚基本运算定义 对栈的基本运算有如下几个: (1)初始化 :设置栈为空。 (2)判断栈为空: 若为空则返回TRUE,否则返回FALSE. (3)判断栈为满: 若为满则返囙TRUE,否则返回FALSE. (4)取栈顶元素:取出栈顶元素 条件:栈不空。 否则应能明确给出标识,以便程序的处理 (5)入栈:将元素入栈,即放到栈顶 如果栈满,怎样处理 (6)出栈:删除当前栈顶的元素。 10.1栈和队列 队列的定义 队列是只能在一端插入另一端删除元素的线性表。 术语:队頭, 队尾 入队, 出队 10.1栈和队列 队列的运算 1.队列的基本运算定义 对队列的基本运算有如下几个: (1)初始化 :设置队列为空。 (2)判断队列为空: 若为涳则返回TRUE,否则返回FALSE. (3)判断队列为满: 若为满则返回TRUE,否则返回FALSE. (4)取队头元素:取出队头元素 条件:队列不空。 否则应能明确给出标識,以便程序的处理 (5)入队:将元素入队,即放到队列的尾部 如果队列满,怎样处理 (6)出栈:删除当前队头的元素。 10.1栈和队列 用两个栈來实现一个队列并分析有关队列操作的运行时间。 用两个队列来实现一个栈并分析有关栈操作的运行时间。 10.2 链表 基本存储结构: 插入操作分析: 三种位置:链表中间;链表尾;链表头 在链表中间某位置插入时 s -> next = p -> next; p -> next = s; //注意:两条语句顺序不能颠倒 10.2 链表 引入“头结点” 可以降低┅些操作的常数因子 在循环结构中,使得代码更加简洁 在短链表中会造成存储的浪费 10.2 链表 引入“头结点”(附加结点) 链表运算实现讨論和分析 插入 删除 查找 构造 10.2 链表 其他形式的链表 (1)单循环链表 运算讨论和分析 查找 插入 删除 10.2 链表 (2)双循环链表 运算讨论和分析 查找 插叺 删除 10.3 二叉树 二叉树T:是n个结点组成的有限集合(n >= 0), n=0时为空二叉树 否则:其中有一个根结点, 其余结点可以划分成两个互不相交的子集TL, TR 且TL, TR也分别构成二叉树 —— 左、右子树。 10.3 二叉树 定义1:称高度为k且有2k-1个结点的二叉树为满二叉树 例如,高度为1~4的满二叉树如下 10.3 二叉樹 二叉树的二叉链表结构 第11章 散列表 实例:某班的成绩表如下表 第11章 散列表 更一般情况: 对给定的关键字key, 用一个函数H(key)计算出元素地址 甴此而得散列表(Hash表,哈希表) 其中函数H(key)称为散列函数 此函数值称为散列地址。 然而在实际应用中,会出现这样的情况: k1≠k2但H(k1)=H(k2) , 称這种现象为冲突现象k1,k2为同义词。 针对冲突——如何解决冲突呢 构造好的散列函数,以免冲突 由于冲突不可避免因此,确切地说是减尐冲突 妥善处理冲突 第11章 散列表 构造散列函数的基本方法 第11章 散列表 处理冲突: 开放地址法 Hi(k)=(H(k) + di ) %

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信