这个题怎样做,数据结构将下列树转化为二叉树,怎么做
d的父节点是a 左子是c 右子为空
将树转换成二叉树:
① 加线:在兄弟之间加一连线
② 抹线:对每个结点,除了其左孩子外,去除其与其余孩子之间的关系
③ 旋转:以树的根结点为轴心,将整树顺时针转45°
将二叉树转换成树:
① 加线:若p结点是双亲结点的左孩子,则将p的右孩子,右孩子的右孩子……沿分支找到的所有右孩子,都与p的双亲用线连起来
② 抹线:抹掉原二叉树中双亲与右孩子之间的连线
③ 调整:将结点按层次排列,形成树结构
声明一个结构体,代表一个节点
struct Node{
char symbol;
Node *left, *right;
}
其中symbol就是a、b、c那些字母,left是指向左边孩子结点的指针,right是右边的指针。需要创建孩子节点时,使用malloc(c++可以用new)分配内存给孩子节点。
如果要遍历、删除的话,用递归完成。
参考网页链接
举例
变为:
你所问的答案
数据结构习题:编写判断一个字符序列是否是回文的函数。非常急,多谢!
include <stdio.h> include <string.h> void main(){ char word[20];int i,len,flag=1;gets(word);len=strlen(word)-1;for(i=0;i<=len\/2;i++)if(word[i]!=word[len-1]){ flag=0;break;} if(flag)printf("Word %s is 回文\\n",word);else printf("%s不是回文\\n",word)...
数据结构讲的是什么
你们的书上开始应该在讲究数据的物理存储结构\/逻辑存储结构等概念,说明数据结构首先就是“数据的结构”,在内存上的存储方式,就是物理的存储结构,在程序使用人员的思想上它是逻辑的,比如:你们在C\/C++中学习到链表,那么链表是什么一个概念,你们使用指针制向下一个结点的首地址,让他们串联起来,形成一个接一个的结点,...
数据结构的基本方法是怎样的。及其基本思想
一方面,在程序设计语言中,每一个数据都属于某种数据类型。类型明显或隐含地规定了数据的取值范围、存储方式以及允许进行的运算。可以认为,数据类型是在程序设计中已经实现了的数据结构。另一方面,在程序设计过程中,当需要引入某种新的数据结构时,总是借助编程语言所提供的数据类型来描述数据的存储结构。...
数据结构习题详解内容提要
这本教材旨在帮助学生理解和准备"全国自学考试(计算机及应用专业、计算机信息管理专业 独立本科段)"的考试。它根据官方考试大纲和历年考题精心编排,共分为四个部分:第一部分是笔试应试指导,提供考试策略和技巧,帮助考生适应考试形式。第二部分是详细的笔试题解,对历年考题进行解析,每个题目都配有深入...
高分悬赏:c++完成数据结构算法(共5道题 要所有程序 最好有点文字说明...
高分悬赏:c++完成数据结构算法(共5道题 要所有程序 最好有点文字说明 ) 1.链表逆置2.删除链表中所有的偶数节点3.将链表中所有奇数排在偶数前4.二叉树的非递归遍历算法并在此基础上求叶子的个数5.折半查找算法... 1. 链表逆置2. 删除链表中所有的偶数节点3. 将链表中所有奇数排在偶数前4. 二叉树的非...
一个数据结构问题,题目如图,圈1部分不太明白,求路过的大神,可以用例子...
有序链表:连续的if,elseif,else,所以每次while循环只执行一个语句块;if或者elseif或者else;整体while循环的目的是执行最后一个else,删除a链表中的元素;所以要让上面的if和else fi条件都为假;(a->data不小于b->data,b->data不小于c->datac,c->data不小于a->data,则a,b,c各自当前...
关于数据结构(C语言)的几个题
1.随意画几个二叉树就知道了,这里空链域用ε表示,数一数结点个数与ε个数就知道是n+1了 2.具体过程在图中给出。3.第一步将数据(假设为e)放入s的data中;第二步s的后继指向q的后继节点;第三步q的后继指向s 4.查找72只需2步:第一步:设立low、high与mid指针,将72与mid指向的值...
一道数据结构的编程题目,希望大大们给小弟解答下,谢谢哈
e=*(L.elem+i-1); \/\/ 将表L的第i个元素的值赋给e return OK; } int LocateElem(SqList L,ElemType e,Status(*compare)(ElemType,ElemType)) { \/\/ 初始条件:顺序线性表L已存在,compare()是数据元素判定函数(满足为1,否则为0) \/\/ 操作结果:返回L中第1个与e满足关系compare()的数据元素的位序。 \/...
数据结构习题有谁有答案?
12.B 在最坏情况:比较次数为___每次查找都要从第一个比较到最后一个,都要遍历N次 :总的比较次数N*N,平均比较次数就是N 13. C 二、填空题 1.出栈 2.n\/2+n\/(n+1) 1+2+3……n+n)\/(n+1)=.n\/2+n\/(n+1)3.1 4.设待排数据元素的关键字为(67,24,14,22,33,15,11...
桑畅金莲: 将树转换成二叉树:① 加线:在兄弟之间加一连线 ② 抹线:对每个结点,除了其左孩子外,去除其与其余孩子之间的关系 ③ 旋转:以树的根结点为轴心,将整树顺时针转45° 将二叉树转换成树:① 加线:若p结点是双亲结点的左孩子,则将p的右孩子,右孩子的右孩子……沿分支找到的所有右孩子,都与p的双亲用线连起来 ② 抹线:抹掉原二叉树中双亲与右孩子之间的连线 ③ 调整:将结点按层次排列,形成树结构
潮安县17844773511: 数据结构问题:把一棵二叉树从链式存储转变为顺序存储 - ?
桑畅金莲: 我觉得既可以存储每个节点的名称,也可以存储每个节点下的值 可以以节点名为key,节点的值为value 使用HashMap方式来存储数据 Map mymap = new HashMap(); mymap.put(key,value); key=节点名 value=节点的值 不知道这个思路是否符合你的需求 这样的数组可以吗? [[data],[leftChild],[rightChild]]
潮安县17844773511: 怎么将数据库中存的树转化为树形列表 - ?
桑畅金莲: 树状结构的数据保存在数据库中的常用方法有一下两种: 1、邻接表(adjacency list model) 2、预排序遍历树算法(modified preorder tree traversal algorithm) 用一下的例子讨论这两种方法的差异: 现有一棵树如下:邻接表模式:这种模式我...
潮安县17844773511: 数据结构的树和二叉树之间怎么转换??
桑畅金莲: 由根结点往下,如果有多个孩子那么这一层的孩子都作为本层第一个结点的右孩子的右孩子的右孩子……而本层第一个结点则作为它们双亲结点的左孩子,比如一个只有两层四个结点的树,变换完了以后就变成:根结点-》往左有一个孩子-》往右一个孩子-》继续往右一个孩子 这样的折线型
潮安县17844773511: 求数据结构树转换为二叉树的C语言代码,一定要能在code blocks上运行的!!!!!! - ?
桑畅金莲: #include #include using namespace std; struct Node { int key, heap, tot; Node *left, *right; } *root; int getT(Node *root) { if (root == NULL) return 0; return root->tot; } void Update(Node *root) { if (root == NULL) return; root->tot = getT(root->left) + getT(...
潮安县17844773511: 数据结构中的树和二叉树有什么关系?如何相互转换? - ?
桑畅金莲: 树可以是多叉树,可以是二叉树 二叉树一般比较好处理,所以对于任意的一棵树,一般转化成二叉树处理 相互转化的方法网上讲解非常多,这里碍于篇幅不展开,请自行百度关键字”多叉转二叉“,有很多的,我刚查过了~ 满意望采纳谢谢!
潮安县17844773511: 数据结构,两颗树组成的森林转换成二叉树,如果两棵树本来就是二叉树,是直接把根节点连起来还是按照书上 - ?
桑畅金莲: 数据结构,两颗树组成的森林转换成二叉树,如果两棵树本来就是二叉树,是直接把根节点连起来还是按照书上的方法,把每个树转换成二叉树,在把第一个树的根节点的右指针指向第二个树的右指针? 【回答】:应先把每个树转换成二叉树,在把第一个树的根节点的右指针指向第二个树的根.你这个图中画的都不对正确的应是: ..... A / ...... \ B........ D .\........ / ....C.... E ............. \ ..................F (点请无视之,不知道,最近空格不知为何不起作用了)
潮安县17844773511: 数据结构与算法中 树转为二叉树 需要什么准则和要求吗???
桑畅金莲: 根据树与二叉树的转换方法:将树的所有左子树与根的连接保留,将其余的连接断掉,而把子树层的所有兄弟相连作为其左子树的右子树.递归下去就行了.见数据结构(C语言版)P137
潮安县17844773511: 简述树与它转化的二叉树(孩子兄弟表示法)的关系,并说明转化后的二叉树的特点.数据结构中树可以用孩子兄弟法转换成二叉树,他们直接有什么关系且... - ?
桑畅金莲:[答案] 1、转换后的二叉树没有右子树 2、原树中叶子就变成了没有左子树的结点了 3、树的先根遍历就和这个二叉树的先序一样 4、树的后根遍历就和这个二叉树的中序一样 还有一些别的可以慢慢推导出来