题目:设计一个程序,演示用算符优先法对算数表达式求值的过程。 一、需求分析 以字符序列的形式从终端读入输入语法正确、不含变量的整数表达式。利用教科书表3.1给出的算符优先关系,实现对算数四则混合运算表达式的求值,并仿照教…
完全二叉树基本知识(一)
二叉树: 特点是与每个结点关联的子结点至多有两个(可为0,1,2),即一个结点至多有两棵子树。 二叉树的两棵子树分别称作它的左子树和右子树,即:子树有左右之分(因此二叉树与树有不同结构,不是树的特殊情况)。 概念: 满二…
结构化、半结构化和非结构化数据
一、结构化数据 结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。举一个例子: id name age gender …
二叉树遍历(先序、中序、后序)
二叉树遍历 by Java 二叉树有多种遍历方法,有层次遍历、深度优先遍历、广度优先遍历等。 本文只涉及二叉树的先序、中序、后序的递归和非递归遍历。 涉及到的代码都用Java编写。 首先给出二叉树节点类: 树节点: cl…
数据结构之查找
数据结构之查找 查找概论 查找表 定义 查找表(Search Table)是同一类型的数据元素(或记录)的集合。 查找表分类 静态查找表 静态查找表(Static Search Table):只做查找操作的查找表。 它的…
深入学习二叉树(二) 线索二叉树
1 前言 在上一篇简单二叉树的学习中,初步介绍了二叉树的一些基础知识,本篇文章将重点介绍二叉树的一种变形——线索二叉树。 2 线索二叉树 2.1 产生背景 现有一棵结点数目为n的二叉树,采用二叉链表的形式存储。对于每个结…
数据结构(四) -- 双端队列
一,双端队列 队列的一种变型–双端队列(Double-ended queue),简称为Deque。顾名思义,也就是前端与后端都支持插入和删除操作的队列。 二,双端队列的ADT(AbstractDataType…
《数据结构》排序 —— 基数排序(C++实现)
前言:《数据结构》作为计算机专业的一门重点学科,无论是将来考研、就业,对其的考察都是重中之重,之前的文章已经对此进行过论述。作为考察程序员“编程能力”的一种方式,考验的是我们如何将数据结构的思想用编程语言精确的编码出来。…
二叉树详解和代码实现
树和二叉树的区别: 树中节点的子节点个数没有限制,而二叉树的节点最多为两个 树中的节点无左右之分,而二叉树有左右之分 完全二叉树: 若设二叉树的高度为h,除第h层外,其他各层(1~h-1)的节点数都达到最大个数,第h层有…
数据结构 -《大话数据结构》读书笔记(1)
公司的经理大哥建议过我,说趁年轻要深入学习算法与数据结构,设计模式, APP 架构,当然也包括 iOS 底层的一些知识……半年多过去了,算法数据结构方面的书多少算是看过一些,但都是走马观花似的一掠…
深入学习二叉树(三) 霍夫曼树
1 前言 霍夫曼树是二叉树的一种特殊形式,又称为最优二叉树,其主要作用在于数据压缩和编码长度的优化。 2 重要概念 2.1 路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分…
《数据结构》二叉树 —— 二叉树的建立和遍历(C++实现)
前言:《数据结构》作为计算机专业的一门重点学科,无论是将来考研、就业,对其的考察都是重中之重,之前的文章已经对此进行过论述。作为考察程序员“编程能力”的一种方式,考验的是我们如何将数据结构的思想用编程语言精确的编码出来。…