双亲表示法采用顺序表(也就是数组)存储普通树,其实现的核心思想是:顺序存储各个节点的同时,给各节点附加一个记录其父节点位置的变量。 注意,根节点没有父节点(父节点又称为双亲节点),因此根节点记录父节点位置的变量通常置为 -1。 例如,采用双亲表示法存储图 1 中普通树,其存储状态如图 2 所示: 图2 双亲表示...
①双亲表示法(顺序表示法):根节点parent=-1 typedefcharElemType; typedefstructTNode{ ElemType data;//结点数据intparent;//该结点双亲在数组中的下标}TNode;//结点数据类型#defineMaxSize 50typedefstruct{ TNode nodes[MaxSize];//结点数组intn;//结点数量}Tree;//树的双亲表示结构 ②孩子表示法:把每个孩子...
OP_STATUSBuildChildParentTree(CHILD_PARTENT_TREE *CPTree,constCHILD_PARENT_TREE_ROOT_NODENUM_DATA *CPTreeRootNodeNum,constCHILD_PARENT_TREE_NODE_DATA *CPTreeData) CPTree表示树,CPTreeRootNodeNum表示根的位置和结点数量,CPTreeData表示结点的数据。 (1)构建树代码 /*ChildParentTree*/OP_STATUSBuildChi...
if(T.nodes[i].parent>=0) /* 有双亲 */ printf(" %c",Value(T,T.nodes[i].parent)); /* 双亲 */ printf(" "); } return OK; } Status InsertChild(PTree *T,TElemType p,int i,PTree c) { /* 初始条件: 树T存在,p是T中某个结点,1≤i≤p所指结点的度+1,非空树c与T不相交 */...
1)图示表示 2)二元组表示 3)嵌套集合表示 4)凹入表示法(类似书的目录) 5)广义表表示 四、树的基本术语 树的节点:包含一个数据元素及若干指向子树的分支; 祖先节点:从根到该节点的所经分支上的所有节点,也就是当前节点的所有迭代父节点。 双亲节点:B 节点是A节点的孩子,则A节点是B节点的双亲(父节点); ...
树的存储结构主要有:双亲表示法,孩子表示法,双亲孩子表示法和孩子兄弟表示法。 双亲表示法:该种方法寻找一个节点的双亲结点比较方便,但是对于寻找一个节点的孩子节点操作实现却不太方便。 孩子表示法:该方法寻找一个节点的孩子节点操作比较方便,但是寻找一个结点的双亲结点就比较麻烦了。 双亲孩子表示法:该存储结构具...
② 双亲孩子表示法 顺序+链式 顺序存放结点即data,链式存放第一个孩子firstChild ③ 孩子兄弟表示法 链式 类似链式存储二叉树 每个结点的后继结点,一个是第一个孩子,一个是兄弟结点 5、树、森林和二叉树转换 ① 森林???二叉树 将根结点用右指针连接,若有树X,Y,Z(表示结点树)转换为二叉树,则以X的根结点...
双亲表示法 双亲表示法,言外之意就是以双亲作为索引的关键词的一种存储方式。 我们假设以一组连续空间存储树的节点,同时在每个节点中,附设一个指示其双亲节点在数组中位置的元素。 也就是说,每个节点除了知道自己是谁之外,还知道他的双亲在哪。 //树的双亲表示节点结构定义 ...
采用双亲表示法表示树,则具有n个结点的树至少需要( )个指向双亲的指针。【中山大学2004】A.nB.n+1C.n-1D.2n
C语⾔数据结构系列之树的概念结构和常见表⽰⽅法 0x00 树的概念 树是⼀种⾮线性的数据结构,它是由 n(n >= 0)个有限节点组成的⼀个具有层次关系的集合。那么为什么叫 "树" 呢?我们之所以把它成为 "树",是因为它很像我们现实⽣活中的树。只是它是倒过来的,根朝上叶⼦朝下。0x01 树的...