阿里云 拦截网站,工程建设国家标准网站,网站建设 2015年11月,辽宁省建设工程交易网第五章主要学习了树的知识#xff0c;以前一直很好奇#xff0c;为什么电脑能存储像树一样的数据结构#xff0c;学完才发现#xff0c;ADT加数组或者ADT加链表真的可以衍生出多种多样的数据类型#xff0c;以下做出本章小结#xff1a; 1.利用ASCII码实现不同类型的数据…第五章主要学习了树的知识以前一直很好奇为什么电脑能存储像树一样的数据结构学完才发现ADT加数组或者ADT加链表真的可以衍生出多种多样的数据类型以下做出本章小结 1.利用ASCII码实现不同类型的数据的转换如int char - ‘0’。 2.学会了利用bool类型标记找出所需数据类型如找根节点先将bool型数组初始化成false输入过的节点标记为true那么为false的即为根节点。 3.树的四种遍历方式利用递归实现三种遍历方式 先序 void PreOrderTravel(node t[], int x){//先序遍历t[x]为根结点的树t cout t[x].name ; if(t[x].lch!-1) PreOrderTravel(t, t[x].lch); if(t[x].rch!-1) PreOrderTravel(t, t[x].rch);} 中序 void InOrderTravel(node t[], int x){//中序遍历t[x]为根结点的树t if(t[x].lch!-1) InOrderTravel(t, t[x].lch); cout t[x].name ; if(t[x].rch!-1) InOrderTravel(t, t[x].rch);} 后序 void PostOrderTravel(node t[], int x){//后序遍历t[x]为根结点的树t if(t[x].lch!-1) PostOrderTravel(t, t[x].lch); if(t[x].rch!-1) PostOrderTravel(t, t[x].rch); cout t[x].name ;} 以及利用queue头文件包含的函数实现层次遍历。 void levelOrderTraverse(node t[], int x){//层次遍历t[x]为根结点的树t int tmp; queueint q; q.push(x); //根结点所在下标入栈 while(!q.empty()){ tmp q.front(); q.pop(); if(tmp!-1){ cout t[tmp].name ; q.push(t[tmp].lch); q.push(t[tmp].rch); } } } 主要问题 1.对函数体运行的具体流程还是想得不够明白透彻可能真的不够聪明。 2.还是会拖ddl。 转载于:https://www.cnblogs.com/AUlikeHER32/p/10810499.html