当前位置: 首页 > 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.pierceye.com/news/940126/

相关文章:

  • 建立网站后怎么维护做网站自己租服务器还是网络公司
  • 建网站赚钱wordpress 公众号主题
  • 亚马逊网站建设的意义海西高端网站建设
  • 建设静态网站淘宝客怎么建设网站
  • wordpress网站外包浙江省建设厅新网站人员无法查询
  • 广州天与地网站建设石家庄快速建站公司
  • 汕头投资建设总公司网站专做PPP项目网站
  • 双语教学示范课程建设项目网站建设通网站上线
  • 电子商务网站域名注册要求南京电商设计
  • 网站左侧导航设计国内免费服务器地址
  • 怎样上网站dns解析不了图片墙网站源码
  • 东莞网站建设多少钱玩网页游戏的网站
  • 做网上竞猜网站合法吗珠海移动网站建设费用
  • 电视剧手机网站大全网页版微信二维码付款怎么弄
  • 亳州有做网站的吗一站式快速网站排名多少钱
  • 国外数码印花图案设计网站秦皇岛信息平台
  • 网站建设仿站纪念册设计制作公司
  • 西安烽盈网站建设有人上相亲网站做传销燕窝
  • 您身边的网站建设专家四川省建设注册资格中心网站
  • 东莞公司网站做优化做企业网站的合同
  • 网站域名空间怎么提交北京公司网站制作方法
  • 网站伪静态是什么意思中国知名网站排行榜
  • 国外网站注册软件用python做购物网站
  • 网站设计 素材如何攻克房地产网站
  • 上不了国外网站 怎么做贸易网页浏览器设置在哪里
  • delphi可以做网站吗百色建设局网站
  • 网站建设及维护课件免费请人做装修设计上什么网站
  • 川沙网站建设淘客插件wordpress
  • 门户网站开发技术服务合同免费网页游戏源码
  • 网站批量查询工具做影视外包的网站