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

计算机网站建设毕业论文社交媒体营销

计算机网站建设毕业论文,社交媒体营销,建设网站要电脑才能吗,成都科技网站建设哪里有二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。 通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址 。链式结构又分…

二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。 通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址 。链式结构又分为二叉链和三叉链,当前学习二叉链。
在这里插入图片描述
普通二叉树的增删查改没有意义。如果是为了存储数据,线性表更简单,二叉树更复杂,并且插入删除也不好定义。有意义的是通过二叉树引出搜索树,搜索树又有AVL树和红黑树。再搜索树中查找一个节点最多找高度次。

深度优先:前中后序遍历 一般借助递归
广度优先:层序遍历 一般借助队列

typedef char BTDataType;
typedef struct BinaryTreeNode
{BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right;
}BTNode;// 二叉树前序遍历 递归
void PrevOrder(BTNode* root)
{if(root == NULL){printf("NULL ");return;}// 根 左 右子树 递归 递归过程图在下方printf("%c ",root->data);PrevOrder(root->left);PrevOrder(root->right);
}// 二叉树中序遍历
void InOrder(BTNode* root)
{if(root == NULL){printf("NULL ");return;}// 左 根 右子树 递归 递归过程图在下方InOrder(root->left);printf("%c ",root->data);InOrder(root->right);
}// 二叉树后序遍历
void PostOrder(BTNode* root)
{if(root == NULL){printf("NULL ");return;}// 左 右 根 递归 递归过程图在下方PostOrder(root->left);PostOrder(root->right);printf("%c ",root->data);
}
// 求节点的个数
int TreeSize(BTNode* root)
{// root不是NULL,则个数为左节点个数+右节点个数+1(加的1就是对本节点个数加上去)return root == NULL ? 0 : TreeSize(root->left) + TreeSize(root->right) + 1;
}
// 求叶子结点的个数 
// 1.NULL return 0 2.叶子 return 1 3.非空且不是叶子 reutrn 左子树叶子节点个数+右子树叶子节点个数
int TreeLeefSize(BTNode* root)
{if(root == NULL)return 0;if(root->left == NULL && root->right == NULL)return 1;return TreeLeefSize(root->left) + root->left(root->right);
}
// 求第K层节点的个数 设K=3 化解为左子树的第K-1(2)层和右子树的第k -1(2)层
int TreeKLeefSize(BTNode* root, int k)
{if(root == NULL)return 0;if(k == 1)return 1;return TreeKLeefSize(root->left, k-1) + TreeKLeefSize(root->right, k-1);
}
// 查找树里面值为X的那个节点 1.root == NULL return NULL 
// 2.root 不是要找的 先找左树 左树如果没有再找右树 3.左右都没有则当前树没找到 return null
BTNode* TreeFind(BTNode* root, BTDataType x)
{if(root == NULL)return NULL;// 我就是x则返回if(root->data == x){return root;}// 不是x先在左边找再在右边找BTNode* lret = TreeFind(root->left, x); // 找到了返回root 没找到返回NULLif(lret)return lret;BTNode* rret = TreeFind(root->right, x); // 找到了返回root 没找到返回NULLif(rret)return rret;// 左右都没找到return NULL;
}
// 二叉树销毁 形参的改变不会影响实参,因此需要二级指针
void BinaryTreeDestory(BTNode** pproot)
{// if(*pproot == NULL)// 	return;// BinaryTreeDestory(&(*pproot)->left); //先将二级指针转换为一级再取地址变为2级传参// BinaryTreeDestory(&(*pproot)->right);// free(*pproot);// *pproot== NULL;
}
// 一级指针的做法 存在野指针,需要将野指针置空 保持接口一致性
void BinaryTreeDestory(BTNode* root)
{if(root == NULL)return;BinaryTreeDestory(root->left); //先将二级指针转换为一级再取地址变为2级传参BinaryTreeDestory(root->right);free(root);
}
// 创建节点
BTNode* CreateTreeNode (BTDataType x)
{BTNode* n1 = (BTNode*)malloc(sizeof(BTNode));n1->data = x;n1->left = NULL;n1->right = NULL:return node;
}
int main()
{// 手动连接上图中的树BTNode* A = CreateTreeNode('A');BTNode* B = CreateTreeNode('B');BTNode* C = CreateTreeNode('C');BTNode* D = CreateTreeNode('D');BTNode* E = CreateTreeNode('E');BTNode* F = CreateTreeNode('F');A->left = B;A->right = C;B->left = D;C->left = E;c->right = F;// 二级做法BinaryTreeDestory(&A);// 一级做法BinaryTreeDestory(A);A = NULL;
}

下图为PrevOrder的递归过程图。函数调用该板块完成后会返回到使用该板块的语句。前中后序的本质是一样的,就是打印的时机不同。
在这里插入图片描述

  1. 求节点的个数(前序) 1+左树节点个数+右树节点个数
  2. 求树的高度(后序) max(左树的高度,右树的高度)+1

深度优先:前中后序遍历 一般借助递归
广度优先:层序遍历 一般借助队列

http://www.hkea.cn/news/464152/

相关文章:

  • 如何撤销网站上信息app网站
  • 单页式网站系统每日新闻摘要30条
  • 网站开发公司 广告词优化方案电子版
  • 做便民工具网站怎么样关键词挖掘站长工具
  • 纺织面料做哪个网站好百度站长资源
  • 菏泽网站建设哪好怎样做平台推广
  • 网上有做logo的网站吗网络营销的核心是什么
  • 自建网站怎么做推广微信营销策略
  • 跳网站查询的二维码怎么做的关键词排名点击软件网站
  • 兼容手机的网站百度怎么推广自己的视频
  • 宝安中心医院入职体检跟我学seo
  • 企业网站后端模板石家庄疫情最新情况
  • 沈阳哪家网站做的好网络营销是指什么
  • 我的网站模板网站建设主要推广方式
  • 国外app素材网站seo运营是做什么的
  • 企业网站seo怎么做百度帐号个人中心
  • 郑州网站建设亅汉狮网络百度网盘seo优化
  • 模板型网站seo优化平台
  • 官方网站下载免费软件培训机构有哪些?哪个比较好
  • 网站导航怎么做的惠州seo计费管理
  • 建设公司网站模板全国唯一一个没有疫情的城市
  • 网站怎么做seo_南京百度提升优化
  • 旅游网站开发与设计论文怎么样建网站
  • 北京网站推广排名公司企业网站的搜索引擎推广与优化
  • 动态网站期末设计广告营销策略
  • 山东网站营销推广费用旺道seo推广
  • 邢台网站建设服务周到百度数据分析工具
  • 周口网站建设竞价恶意点击犯法吗
  • 网站建设没有预付款seo快速提升排名
  • 网站开发者的设计构想网络推广平台软件