当前位置: 首页 > news >正文

网站开发系统的可行性研究报告网站建设公司西安

网站开发系统的可行性研究报告,网站建设公司西安,商城WordPress,深圳展厅公司二叉树层次建树 对于二叉树#xff0c;建树过程中需要一个#xff08;尾插法的#xff09;链表#xff08;或队列#xff09;来辅助确认当前父亲节点 由于尾插法需要一个尾指针。因此可以理解为队列#xff0c;只不过是不带头结点的链表版队列。 但其实就是一个辅助找…二叉树层次建树 对于二叉树建树过程中需要一个尾插法的链表或队列来辅助确认当前父亲节点 由于尾插法需要一个尾指针。因此可以理解为队列只不过是不带头结点的链表版队列。 但其实就是一个辅助找到当前父亲节点的作用不必纠结是啥名字。 代码如下 #includestdio.h #includestdlib.h typedef char ElemType; //树结构体 typedef struct tree_node{ElemType val;struct tree_node*lc;struct tree_node*rc; }Tnode,*BTree;//链表 typedef struct link{BTree tree;//存储的是树的节点struct link*next; }LinkNode,*LinkList;void build_tree(BTreetree,LinkListfront,LinkList rear) {//还需要一个指向当前父亲节点的指针LinkList cur NULL;ElemType data;while(scanf(%c,data) data ! \n){//每次来一个新建一个树的节点和链表的节点BTree newTree (BTree)calloc(1,sizeof(Tnode));LinkList newList (LinkList)calloc(1,sizeof(LinkNode));newTree-val data;newList-treenewTree;//进行判读是不是父亲节点if(tree NULL){tree newTree;//入队front rear newList;currear;}else{if(cur-tree-lc NULL){//插入左子树cur-tree-lcnewTree;//入队并更新尾指针rear-nextnewList;rear rear-next;}else{cur-tree-rc newTree;//入队并更新尾指针rear-nextnewList;rear rear-next;//注意这里左右子树都满了当前父亲节点要换cur cur-next;}}} }//前序便利 void pre_print(BTree tree) {if(tree){putchar(tree-val);pre_print(tree-lc);pre_print(tree-rc);} } void mid_print(BTree tree) {if(tree){//左跟右mid_print(tree-lc);putchar(tree-val);mid_print(tree-rc);} } void post_print(BTree tree) {if(tree){//左右跟post_print(tree-lc);post_print(tree-rc);putchar(tree-val);} } int main() {BTree tree NULL;//树根LinkList frontNULL;LinkList rearNULL;//需要用到尾插法build_tree(tree,front,rear);pre_print(tree);puts();mid_print(tree);puts();post_print(tree);return 0; } 前序便利根左右---先打印自身再左子树再右子树 //前序便利 void pre_print(BTree tree) {if(tree){putchar(tree-val);pre_print(tree-lc);pre_print(tree-rc);} } 中序遍历左根右---先打印左子树再打印自身再右子树 void mid_print(BTree tree) {if(tree){//左跟右mid_print(tree-lc);putchar(tree-val);mid_print(tree-rc);} }后序遍历左右根---先打印左子树再右子树再自身 void post_print(BTree tree) {if(tree){//左右跟post_print(tree-lc);post_print(tree-rc);putchar(tree-val);} } 【注意】以上三中便利采用递归思想。  代码运行结果如下 封装思想展示队列封装 #includestdio.h #includestdlib.h typedef char ElemType;//树 typedef struct trees{ElemType data;struct trees*lc;struct trees*rc; }treeNode,*Tree;//链表 typedef struct Links{Tree tree;struct Links*next; }LNode,*LinkList;//队列 typedef struct{LinkList front;LinkList rear; }LinkQue;void init_que(LinkQueq) {q.frontq.rear(LinkList)calloc(1,sizeof(LNode));q.frontq.rear; }bool isEmpty(LinkQueq) {return q.front q.rear; }//入队 void push_que(LinkQueq,Tree tree) {//新建链表节点LinkList newList (LinkList)calloc(1,sizeof(LNode));newList-nextNULL;newList-treetree;q.rear-nextnewList;q.rearq.rear-next; } bool pop_que(LinkQueq,Tree tree) {if(isEmpty(q)){return false;}LinkList del q.front-next;//头结点不存数据第一个节点才是真的数据起始位置q.front-nextdel-next;//断链treedel-tree;if(q.rear del)//只剩下尾节点的数据{q.rearq.front;//置空}free(del);return true; }void build_tree(Treetree) {LinkQue q;init_que(q);LinkList cur NULL;ElemType data;while(scanf(%c,data) data ! \n){Tree newTree (Tree)calloc(1,sizeof(treeNode));//申请新的树的节点newTree-datadata;if(tree NULL){tree newTree;push_que(q,tree);//入队cur q.rear;}else{if(cur-tree-lc NULL){cur-tree-lc newTree;push_que(q,newTree);}else{cur-tree-rc newTree;push_que(q,newTree);//改变当前父亲节点cur cur-next;}}} }void pre_print(Tree t) {if(t){putchar(t-data);pre_print(t-lc);pre_print(t-rc);} } void mid_print(Tree t) {if(t){mid_print(t-lc);putchar(t-data);mid_print(t-rc);} } void post_print(Tree t) {if(t){post_print(t-lc);post_print(t-rc);putchar(t-data);} }int main() {Tree tree NULL;build_tree(tree);// pre_print(tree);return 0; } 层次遍历在下节
http://www.hkea.cn/news/14388505/

相关文章:

  • 北京网站建设cnevo莱州网页
  • 网站建设有哪些企业搜索推广图片
  • 做外贸网站公司哪家好wordpress建立cms
  • 烟台H5网站设计莱芜杂谈 莱芜话题
  • 建设门户网站的申请如何做招聘网站的对比
  • 信息网站建设情况工作会上海网站
  • 什么免费推广网站好微应用和微网站的区别是什么
  • 建设银行境外购物网站建立网站就是制作网页对吗
  • 科技公司网站制作公司购物网站英文介绍
  • 中高端网站建设公司都兰县公司网站建设
  • 广州做网站哪家好公司怎么做电影网站吗
  • 电商网站项目建设上海营销平台网站建设
  • 厦门网站建设优化网站开发相关知识
  • 农林网站建设公司网络营销实施计划
  • 网络营销的策划方案外包网络优化
  • 宁波模板建站哪家好查网站排名
  • 南京网站seo建设网站费用记什么科目
  • 装修公司网站 源码海阔淘宝客助手wordpress演示站 | 紫色清新商城模板
  • 青海建设厅职称网站建设协会网站的公司
  • 大连专业网站建设百度ai智能搜索引擎
  • 工程建设网站策划方案广东建设厅证件查询网站
  • 外贸公司 网站自己怎么做wap网站
  • 百度公司网站推广怎么做做招聘海报的网站
  • 郑州pc网站开发湖北省工程建设信息官方网站
  • 佛山北京网站建设公司哪家好025网站建设
  • 医院网站可以自己做吗wordpress怎么压缩
  • 河南国安建设集团有限公司网站可以显示文章列表的wordpress主题
  • 邢台建设专业网站宿州网站建设电话
  • 网站标题第一个词wordpress仿站js如何导入
  • 建设银行u盾用网站打不开汽车网站建设费用