摘要:
6.2.2二叉树的存储结构二叉树的存储可分为两种:顺序存储结构和链式存储结构。1. 顺序存储结构把一个满二叉树自上而下、从左到右顺序编号,依次存放在数组内,可得到图6.8(a)所示的结果。设满二叉树结点在数组中的索引号为i,那么有如下性质。(1) 如果i = 0,此结点为根结点,无双亲。(2) 如果i > 0,则其双亲结点为(i -1) / 2 。(注意,这里的除法是整除,结果中的小数部分会被舍弃。)(3) 结点i的左孩子为2i + 1,右孩子为2i + 2。(4) 如果i > 0,当i为奇数时,它是双亲结点的左孩子,它的兄弟为i + 1;当i为偶数时,它是双新结点的右孩子,它的兄 阅读全文
摘要:
一、树的定义 树(Tree)是 n(n≥0)个相同类型的数据元素的有限集合。树中的数据元素叫结点(Node)。n=0 的树称为空树(Empty Tree);对于 n>0 的任意非空树 T 有:(1)有且仅有一个特殊的结点称为树的根(Root)结点,根没有前驱结点; (2)若n>1,则除根结点外,其余结点被分成了m(m>0)个互不相交的集合T1,T2,…,Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵树。树T1,T2,…,Tm称为这棵树的子树(Subtree)。 由树的定义可知,树的定义是递归的,用树来定义树。因此,树(以及二叉树)的许多算法都使用了递归。 树的形式定义为:树(Tree)简记 阅读全文
摘要:
using System;using System.Collections.Generic;using System.Collections; class Program { static void Main(string[] args) { Node<string> H = new Node<string>("H",null,null); Node<string> I = new Node<string>("I",null,null); Node<string> J = new Node< 阅读全文
摘要:
一、线性表的逻辑结构线性表的定义 1)线性表(List)是由 n(n≥0)个相同类型的数据元素构成的有限序列。2)线性表的形式化定义为:线性表(List)简记为L,是一个二元组, L = (D, R) 其中:D是数据元素的有限集合。 R是数据元素之间关系的有限集合。 在实际生活中线性表的例子很多。例如,1 到 100 的偶数就是一个线性表:(2,4,6,…,100)3)在一个复杂的线性表中,一个数据元素是一个记录,由若干个数据项组成,含有大量记录的线性表又称文件(File)。例如,例子 1.1 中的学生信息表就是一个线性表,表中的每一行是一个记录。一个记录由学号、姓名、行政班级、性别和出生年月 阅读全文
摘要:
作者:菩提树下的杨过出处:http://yjmyzz.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 图1上图描述的数据结构就是“树”,其中最上面那个圈圈A称之为根节点(root),其它圈圈称为节点(node),当然root可以认为是node的特例。树跟之前学习过的线性结构不同,它是一对多的非线性结构,具有二个基本特点:1、根节点(root)没有前驱节点,除root之外的所有节点有且只有一个前驱节点2、树中的所有节点都可以有0个或多个后继节点。所以下面这些歪瓜咧枣,不能算是树: 图2 阅读全文