数据结构
文章平均质量分 81
Code-Not-Cold
这个作者很懒,什么都没留下…
展开
-
堆插入、删除、排序
最大堆(最小堆)是一个二叉完全树,节点的子节点i的下表为2*i+1,2*i+2插入过程:插入到数组末尾,然后逐层向上开始调整。删除:通常删除根节点,将根节点和末尾节点交换后,从根节点向下调整。排序:升序排序 ---> 最大堆 :每次将尾部节点和根节点交换,堆长度减1,从根节点向下调整,堆长度减为1时排序结束!/****************************原创 2016-03-28 22:30:21 · 357 阅读 · 0 评论 -
中缀表达式构建二叉树以及递归非递归遍历算法
最近准备找实习,发现数据结构也忘得差不多了,重新敲敲代码,回忆回忆,同时也算是一种笔记!内容: 输入为以‘#’结束的数学表达式,将表达式在转换为后缀的同时构建表达式二叉树,然后实现树的递归和非递归的遍历。。其中非递归算法,列出了统一的模式和各自的模式!/*********************************************************************原创 2016-03-25 16:11:01 · 1679 阅读 · 0 评论 -
中序和前序序列构建二叉树
由中序可以确定多个二叉树,但由中序和前序(或者后序)则可以唯一确定一个二叉树,具体构造方法可以通过递归算法实现:前序序列:ABHFDECKG中序序列:HBDFAEKCG前序字母A将中序划分为两个子序列:((HBDF)A(EKCG)),左子树由(HBDF)构成,右子树由(EKCG)构成(1)左子树作为一个新的树构建,中序序列为HBDF,前序序列为BHFD(2)右子树作为一个新的树原创 2016-03-25 21:16:11 · 906 阅读 · 0 评论 -
二叉搜索树的插入和删除
二叉搜索树:(1)左子树上的所有节点的关键码小于根节点的关键码(2)右子树上的所有节点的关键码大于根节点的关键码(3)左子树和右子树也是二叉搜索码插入:直接搜索并插入删除:(1)删除叶节点,只需将其父节点指向他的指针清空。(2)左右子树有一个为空,则拿子节点来顶替父节点的位置,再释放它。(3)左右子树不为空,在其右子树下寻找中序下的第一个节点,用它的值填补到被删原创 2016-03-28 22:31:36 · 252 阅读 · 0 评论