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

十三五关于网站建设营业推广策划方案

十三五关于网站建设,营业推广策划方案,网站开发工具评价,wordpress导入xls🏆作者主页:king&南星 🎄专栏链接:数据结构 🏅文章目录🌱树一、🌲概念与定义二、🌳定义与预备三、🌴创建结点函数四、🍀查找五、🍁插入六、&a…

在这里插入图片描述

🏆作者主页:king&南星
🎄专栏链接:数据结构

在这里插入图片描述

🏅文章目录

    • 🌱树
      • 一、🌲概念与定义
      • 二、🌳定义与预备
      • 三、🌴创建结点函数
      • 四、🍀查找
      • 五、🍁插入
      • 六、🍃遍历

🌱树

一、🌲概念与定义

描述树结构:

  1. 和现实世界的树 反着画
  2. 根节点 枝干 叶子节点
  3. 同一层 兄弟 上层:父 叔叔 上层的上层:爷爷
    下层:孩子 侄儿
  4. 树的高度:几代人
  5. 树退化成线性结构 : 一叉树(链表) N代单传
    图解:
    现实中的树
    在这里插入图片描述
    数据结构中的树是和现实倒着的
    在这里插入图片描述
    在这里插入图片描述
    详细解读:三个指针描述,一个指针指向父亲,一个指针指向兄弟,一个指针指向孩子,同时规则设定只有父亲的第一个孩子才可以有孩子

二、🌳定义与预备

先准备好头文件、结构体和函数声明

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>typedef struct treeNode
{int data;                  //数据struct treeNode* pParent;  //指向父struct treeNode* pBrother; //指向第一个兄弟struct treeNode* pChild;   //指向第一个孩子
}treeNode;#define SIZE sizeof(treeNode)//创建节点函数
treeNode* createNode(int data);//在树中找一个节点,找到返回这个节点的地址,找不到返回NULL
treeNode* findNode( treeNode* root, int findData);//插入一个节点到树中
//把insertData插入到*pRoot树中 如果isChild为真成为findData节点的孩子,否则成为findData节点的兄弟
bool intsertNode( treeNode** pRoot, int findData, int insertData, bool isChild);//遍历
void print_Tree(treeNode* root);

三、🌴创建结点函数

这里利用一个技巧,直接使用内存设置函数memset函数,把三个指针内存都设置为0

treeNode* createNode( int data )
{treeNode* newNode = (treeNode*)malloc(SIZE);assert(newNode);memset(newNode, 0, SIZE);		//内存都设置为0newNode->data = data;return newNode;
}

四、🍀查找

在树中找一个节点,找到返回这个节点的地址,找不到返回NULL
先在while循环中遍历同一层的兄弟,直到他下一个兄弟为空,切换到下一层,如此循环下去,如果找到则返回地址,如果没找到则返回空

treeNode* findNode(treeNode* root, int findData) 
{if (NULL == root) return NULL;  //防呆treeNode* pTemp;treeNode* pnextChild = root;while (true){pTemp = pnextChild;if (NULL == pnextChild) break;while( true ){//遍历兄弟层if (NULL == pTemp) break;if (findData == pTemp->data) return pTemp;pTemp = pTemp->pBrother;}//切换到下一层(孩子)pnextChild = pnextChild->pChild;}return NULL;
}

五、🍁插入

描述:插入一个节点到树中,把insertData插入到*pRoot树中 如果isChild为真成为findData节点的孩子,否则成为findData节点的兄弟
在这里插入图片描述

bool intsertNode(treeNode** pRoot, int findData, int insertData, bool isChild)
{if (NULL == pRoot) return false; //防呆if (NULL == *pRoot) //空树{*pRoot = createNode(insertData);return true;}treeNode* pFind = findNode(*pRoot, findData);  //查找if (NULL == pFind) return false;treeNode* pNew, * pTemp;//找到了if (isChild) //新节点成为pFind指向节点的孩子{//有孩子,新节点成为pFind节点孩子的最小兄弟if (pFind->pChild){pTemp = pFind->pChild;pNew = createNode(insertData);while (pTemp->pBrother) pTemp = pTemp->pBrother;pTemp->pBrother = pNew;pNew->pParent = pFind;return true;}//pFind指向的节点没有孩子else{//有父,pFind不是根节点if (pFind->pParent){//pFind是pFind->pPartent的第一个孩子if (pFind->pParent->pChild == pFind){pNew = createNode(insertData);pFind->pChild = pNew;pNew->pParent = pFind;return true;}else{//pFind不是pFind->pParent的第一个孩子//新节点只能成为 pFind->pParent->pChild的孩子intsertNode(&(pFind->pParent), pFind->pParent->pChild->data, insertData, true);}}//无父,pFind是根节点else{pNew = createNode(insertData);pFind->pChild = pNew;pNew->pParent = pFind;return true;}}}else //新节点成为pFind指向节点的兄弟{pTemp = pFind;while (pTemp->pBrother) pTemp = pTemp->pBrother;pNew = createNode(insertData);pTemp->pBrother = pNew;pNew->pParent = pFind->pParent;return true;}return false;
}

六、🍃遍历

和查找函数异曲同工

void print_Tree(treeNode* root) 
{if (NULL == root) return NULL;  //防呆treeNode* pTemp;treeNode* pnextChild = root;int cnt = 1;while (true){pTemp = pnextChild;if (NULL == pnextChild) break;printf("第[%d]层:", cnt++);while (true){//遍历兄弟层if (NULL == pTemp) break;printf("%d ", pTemp->data);pTemp = pTemp->pBrother;}printf("\n");//切换到下一层(孩子)pnextChild = pnextChild->pChild;}
}

🎉欢迎各位→点赞👏 + 收藏💞 + 留言🔔​
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🐾

http://www.hengruixuexiao.com/news/55391.html

相关文章:

  • 广州 网站制作夸克搜索
  • 鲜花销售网站开发费用长沙网红打卡地
  • ppt中超链接网站怎么做seo名词解释
  • 宜春网站开发公司电话百度上广告怎么搞上去的
  • 深圳做网站优化报价优化大师使用方法
  • 河南网站建设哪里有天津seo排名扣费
  • 武清做网站公司武汉搜索引擎排名优化
  • 网页美工设计实训sem优化师是做什么的
  • mac做网站改html文件优化大师哪个好
  • 长沙做网站的公司买卖友链
  • wordpress 劣势宁波seo推广
  • 商务网站建设实训心得网址大全qq浏览器
  • 成都建站模板公司平台推广方案
  • 表情包制作生成器seo做什么网站赚钱
  • 甘肃网络公司网站建设可以发外链的平台
  • 上海 响应式网站公司长沙百度seo
  • 盐城网站建设咨询新手运营从哪开始学
  • 响应式网站样式图怎么做优化网站视频
  • 嘉禾手机网站建设广州网站优化关键词排名
  • 电子商务网站建设的基本要素seo技术服务外包
  • 网页设计与网站建设第07章在线测试建一个自己的网站
  • 网站搭建官网网站seo哪里做的好
  • 金融网站建设方案宣传方式
  • 单一产品网站如何做seoseo关键词工具
  • 做健身网站步骤seo优化技术是什么
  • 昆明网站推广专员真人seo点击平台
  • 实验报告网站建设与网页制作定制网站建设推广服务
  • 织梦末班和dw建设网站哪个方便优化专业全网优化
  • 广州做营销型网站哪家好重庆seo是什么
  • 怎么做微信点击网站打赏看片网络营销产品的首选产品