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

网站建设寻找可以途径中小型企业网络拓扑图

网站建设寻找可以途径,中小型企业网络拓扑图,模板wordpress,公司做网站有用吗目录 一、二叉树的基础操作 二、二叉树代码图解 2.1 遍历 2.2 求大小 2.3 创建与销毁 2.4 与队列结合解决问题 三、二叉树C语言源码汇总 二叉树的代码实现运用了函数递归的思想#xff0c;了解函数递归的知识请见博主的另一篇博客#xff1a; http://t.csdnimg.cn/Po…目录 一、二叉树的基础操作 二、二叉树代码图解 2.1 遍历 2.2 求大小 2.3 创建与销毁 2.4 与队列结合解决问题 三、二叉树C语言源码汇总 二叉树的代码实现运用了函数递归的思想了解函数递归的知识请见博主的另一篇博客 http://t.csdnimg.cn/PoMtd 一、二叉树的基础操作 typedef int BTDataType;typedef struct BinaryTreeNode {BTDataType data; // 当前结点值域 struct BinaryTreeNode* left; // 指向当前节点左孩子struct BinaryTreeNode* right; // 指向当前节点右孩子 }BTNode;//创建二叉树 BTNode* CreatBinaryTree(); //前序遍历 void PrevOrder(BTNode* root); //中序遍历 void InOrder(BTNode* root); //后序遍历 void PostOrder(BTNode* root); //结点个数 int TreeSize(BTNode* root); //叶子结点个数 int TreeLeafSize(BTNode* root); //二叉树高度 int TreeHeight(BTNode* root); //二叉树第k层结点个数 int TreeLevelKSize(BTNode* root, int k); //二叉树查找值为x的结点 BTNode* TreeFind(BTNode* root, int x); // 通过前序遍历的数组ABD##E#H##CF##G##构建二叉树 BTNode* CreateTree(char* a, int* pi); //二叉树的销毁 void BinaryTreeDestory(BTNode* root); // 判断二叉树是否是完全二叉树 bool BinaryTreeComplete(BTNode* root); //层序遍历 void TreeLevelOrder(BTNode* root); 二、二叉树代码图解 2.1 遍历 详见博主的另一篇博客http://t.csdnimg.cn/YnlIr 2.2 求大小 详见博主的另一篇博客http://t.csdnimg.cn/Ce2Fs 2.3 创建与销毁 详见博主的另一篇博客http://t.csdnimg.cn/LXt8P 2.4 与队列结合解决问题 详见博主的另一篇博客http://t.csdnimg.cn/zbNis 三、二叉树C语言源码汇总 BTNode* BuyNode(int x) {BTNode* node (BTNode*)malloc(sizeof(BTNode));if (node NULL){perror(malloc fail);return NULL;}node-data x;node-left NULL;node-right NULL;return node; } //手动造树测试用 BTNode* CreatBinaryTree() {BTNode* node1 BuyNode(1);BTNode* node2 BuyNode(2);BTNode* node3 BuyNode(3);BTNode* node4 BuyNode(4);BTNode* node5 BuyNode(5);BTNode* node6 BuyNode(6);BTNode* node7 BuyNode(7);node1-left node2;node1-right node4;node2-left node3;node4-left node5;node4-right node6;node5-right node7;return node1; } //前序遍历 void PrevOrder(BTNode* root) {if (root NULL){printf(N );return;}printf(%d , root-data);PrevOrder(root-left);PrevOrder(root-right); } //中序遍历 void InOrder(BTNode* root) {if (root NULL){printf(N );return;}InOrder(root-left);printf(%d , root-data);InOrder(root-right); } //后序遍历 void PostOrder(BTNode* root) {if (root NULL){printf(N );return;}PostOrder(root-left);PostOrder(root-right);printf(%d , root-data); } //结点个数 int TreeSize(BTNode* root) {if (root NULL){return 0;}return TreeSize(root-left) TreeSize(root-right) 1; } //叶子结点个数 int TreeLeafSize(BTNode* root) {if (root NULL){return 0;}if (root-left NULL root-right NULL){return 1;}return TreeLeafSize(root-left) TreeLeafSize(root-right);} //二叉树高度 int TreeHeight(BTNode* root) {if (root NULL){return 0;}int leftHeight TreeHeight(root-left);int rightHeight TreeHeight(root-right);return leftHeight rightHeight ?leftHeight 1 : rightHeight 1; } //求第K层的节点数目 int TreeLevelKSize(BTNode* root, int k) {if (root NULL){return 0;}if (k 1){return 1;}return TreeLevelKSize(root-left, k - 1) TreeLevelKSize(root-right, k - 1); } //查找值为x的节点 BTNode* TreeFind(BTNode* root, int x) {if (root NULL){return NULL;}if (root-data x){return root;}BTNode* ret1 TreeFind(root-left, x);if (ret1){return ret1;}BTNode* ret2 TreeFind(root-right, x);if (ret2){return ret2;}return NULL; } // 通过前序遍历的数组ABD##E#H##CF##G##构建二叉树 BTNode* CreateTree(char* a, int* pi) {if (a[*pi] #){(*pi);return NULL;}BTNode* root (BTNode*)malloc(sizeof(BTNode));if (root NULL){perror(malloc);exit(1);}root-data a[(*pi)];root-left CreateTree(a, pi);root-right CreateTree(a, pi);return root; } //二叉树的销毁 void BinaryTreeDestory(BTNode* root) {//判空if (root NULL){return NULL;}//释放左子树BinaryTreeDestory(root-left);//释放右子树BinaryTreeDestory(root-right);//释放本身结点free(root); } //层序遍历 void TreeLevelOrder(BTNode* root) {Queue q;QueueInit(q);if (root){QueuePush(q, root);}while (QueueEmpty(q)false){BTNode* front QueueFront(q);QueuePop(q);printf(%d , front-data);if (front-left){QueuePush(q, front-left);}if (front-right){QueuePush(q, front-right);}}QueueDestroy(q); } //判断二叉树是否是完全二叉树 bool BinaryTreeComplete(BTNode* root) {Queue q;QueueInit(q);if (root ! NULL){QueuePush(q, root);}//入队遇到空停止入队while (!QueueEmpty(q)){BTNode* front QueueFront(q);QueuePop(q);if (front NULL){break;}QueuePush(q, front-left);QueuePush(q, front-right);}//判断后面是否还有非空while (!QueueEmpty(q)){BTNode* front QueueFront(q);QueuePop(q);if (front ! NULL){return false;}}QueueDestroy(q);return true; }
http://www.zqtcl.cn/news/940126/

相关文章:

  • 灌南住房建设局网站南京网站开发南京乐识好
  • 万网网站建设步骤公司建设网站能提升什么竞争力
  • 门户网站 页面集成防内涵吧网站源码
  • 二手房发布网站怎么做有哪个网站有免费视频素材
  • 张浦专业做网站纯html5网站
  • qq互联 网站开发北京博洛尼装饰公司
  • 企业网站模板建站广州红盾信息门户网站
  • 做网站都用到哪些软件商品网站建设方案
  • 集美区网站建设下面软件是网页制作平台的是( )
  • 中国建设银行纪念币预约网站做盗版影视网站
  • 网站建设工作年报江苏城乡和住房建设厅网站
  • 免费做网站tk地方门户网站推广方法有那些
  • 查企业年报的网站微商网站如何做
  • 做网站要了解的事情网站地图有什么作用
  • 企业网站asp源码怎么注册公司logo
  • 一个域名能同时做2个网站吗网站建设与维护的认识
  • 微信公众号怎么做网站链接ftp网站服务器
  • 免费舆情信息网站hao123主页
  • 网站空间不足wordpress最新编辑器怎么还原
  • 电信网站备案查询系统wordpress搜插件错误
  • 忻州企业网站建设房地产 网站 设计制作
  • 重庆水务建设项目集团网站中国十大公司排行榜
  • 做网站服务器需要系统app程序定制开发
  • 宁波网站推广营销公司wordpress插件转php
  • wordpress网站生成app应用制作广告的软件
  • 网站建设多久可以建成淘宝建设网站首页
  • 东营市做网站什么是网络营销道德
  • asp评价网站开发文档安卓软件app
  • phpcms旅游网站模板辽宁建设工程信息网开标大厅我的项目中没有显示
  • 深圳网站建设方维网络建设一个网站报价