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

口碑好的郑州网站建设怎么做多个域名指向一个网站

口碑好的郑州网站建设,怎么做多个域名指向一个网站,自助网站建设,杭州网络公司建网站目录 8.假设二叉树采用二叉链表存储结构存储#xff0c;试设计一个算法#xff0c;计算一棵给定二叉树的所有双分支结点个数。 9.设树B是一棵采用链式结构存储的二叉树#xff0c;编写一个把树 B中所有结点的左、右子树进行交换的函数。 10.假设二叉树采用二叉链存储结构存储…目录 8.假设二叉树采用二叉链表存储结构存储试设计一个算法计算一棵给定二叉树的所有双分支结点个数。 9.设树B是一棵采用链式结构存储的二叉树编写一个把树 B中所有结点的左、右子树进行交换的函数。 10.假设二叉树采用二叉链存储结构存储设计一个算法求先序遍历序列中第 k(1k二叉树中结点个数)个结点的值 11.已知二叉树以二叉链表存储编写算法完成: 对于树中每个元素值为X 的结点删去以它为根的子树并释放相应的空间。 12.在二叉树中查找值为 x 的结点试编写算法(用 C语言)打印值为x的结点的所有祖先假设值为X的结点不多于一个。 8.假设二叉树采用二叉链表存储结构存储试设计一个算法计算一棵给定二叉树的所有双分支结点个数。 本题代码如下 int twonode(tree t) {if (t NULL)//若为空树return 0;else if (t-lchild t-rchild)//双分支结点return twonode(t-lchild) twonode(t-rchild) 1;else//单分支或叶子节点return twonode(t-lchild) twonode(t-rchild); } 完整测试代码 #includestdio.h #includestdlib.h #define true 1 #define false 0 typedef struct treenode {char data;struct treenode* lchild, * rchild; }treenode,*tree; void buildtree(tree* t) {char ch;ch getchar();if (ch #)*tNULL;else{*t (treenode*)malloc(sizeof(treenode));(*t)-data ch;buildtree(((*t)-lchild));buildtree(((*t)-rchild));} } int twonode(tree t) {if (t NULL)//若为空树return 0;else if (t-lchild t-rchild)//双分支结点return twonode(t-lchild) twonode(t-rchild) 1;else//单分支或叶子节点return twonode(t-lchild) twonode(t-rchild); } int main() {tree t;buildtree(t);printf(双支数为%d\n,twonode(t));return 0; } 用ABD##E##CF##G##这个测试 9.设树B是一棵采用链式结构存储的二叉树编写一个把树 B中所有结点的左、右子树进行交换的函数。 本题代码如下 void swap(tree* t) {if (*t){treenode* temp (*t)-lchild;(*t)-lchild (*t)-rchild;(*t)-rchild temp;swap((*t)-lchild);swap((*t)-rchild);} } 完整测试代码 #includestdio.h #includestdlib.h typedef struct treenode {char data;struct treenode* lchild, * rchild; }treenode,*tree; void buildtree(tree* t) {char ch;ch getchar();if (ch #)*t NULL;else{*t (treenode*)malloc(sizeof(treenode));(*t)-data ch;buildtree(((*t)-lchild));buildtree(((*t)-rchild));} } void swap(tree* t) {if (*t){treenode* temp (*t)-lchild;(*t)-lchild (*t)-rchild;(*t)-rchild temp;swap((*t)-lchild);swap((*t)-rchild);} } void disp(tree* t) {if (*t){printf(%c, (*t)-data);disp((*t)-lchild);disp((*t)-rchild);} } int main() {tree t;buildtree(t);printf(交换过后的二叉树为前序序列);swap(t);disp(t);return 0; } 用ABD##E##CF##G##测试 10.假设二叉树采用二叉链存储结构存储设计一个算法求先序遍历序列中第 k(1k二叉树中结点个数)个结点的值 本题代码如下 // 查找第k个节点值的函数 char serchk(tree* t, int k) {if (*t NULL) // 如果节点为空返回*表示未找到return *;if (i k) // 如果当前节点是第k个节点返回节点数据return (*t)-data;i; // 更新当前节点位置char s serchk((*t)-lchild, k); // 递归查找左子树中的第k个节点if (s ! *) // 如果左子树中找到直接返回结果return s;s serchk((*t)-rchild, k); // 否则递归查找右子树中的第k个节点return s; // 返回查找结果 } 完整测试代码 #includestdio.h// 定义二叉树节点结构体 typedef struct treenode {char data; // 节点存储的数据struct treenode* lchild, * rchild; // 左右子节点指针 }treenode,*tree;// 构建二叉树函数 void buildtree(tree* t) {char ch;ch getchar(); // 从输入中读取一个字符if (ch #) // 如果字符为#表示空节点*t NULL;else{*t (treenode*)malloc(sizeof(treenode)); // 分配内存空间给新节点(*t)-data ch; // 将读取到的字符赋值给节点数据(*t)-lchild NULL; // 初始化左子节点为空(*t)-rchild NULL; // 初始化右子节点为空buildtree((*t)-lchild); // 递归构建左子树buildtree((*t)-rchild); // 递归构建右子树} }int i 1; // 全局变量用于记录当前遍历的节点位置// 查找第k个节点值的函数 char serchk(tree* t, int k) {if (*t NULL) // 如果节点为空返回*表示未找到return *;if (i k) // 如果当前节点是第k个节点返回节点数据return (*t)-data;i; // 更新当前节点位置char s serchk((*t)-lchild, k); // 递归查找左子树中的第k个节点if (s ! *) // 如果左子树中找到直接返回结果return s;s serchk((*t)-rchild, k); // 否则递归查找右子树中的第k个节点return s; // 返回查找结果 }int main() {tree t; // 定义二叉树变量tbuildtree(t); // 构建二叉树char fserchk(t, 5); // 查找第5个节点的值printf(%c, f); // 输出查找结果return 0; }用ABD##E##CF##G##测试 11.已知二叉树以二叉链表存储编写算法完成: 对于树中每个元素值为X 的结点删去以它为根的子树并释放相应的空间。 可以直接使用前序遍历访问到值为x的结点就递归的删除它的左、右子树。 本题代码如下 void release(tree* t)//递归释放结点 {if (!*t)return;release((*t)-lchild);release((*t)-rchild);free(*t); } void deletex(tree* t,char x) {if (*t NULL)return;if((*t)-datax){release(t);*t NULL;}if (*t ! NULL)//前序遍历的去找{deletex((*t)-lchild, x);deletex((*t)-rchild, x);} } 完整测试代码 #includestdio.h #includestdlib.h typedef struct treenode {char data;struct treenode* lchild, * rchild; }treenode,*tree; void buildtree(tree* t) {char ch;ch getchar();if (ch #)*t NULL;else{*t (treenode*)malloc(sizeof(treenode));(*t)-data ch;buildtree((*t)-lchild);buildtree((*t)-rchild);} } void release(tree* t) {if (!*t)return;release((*t)-lchild);release((*t)-rchild);free(*t); } void deletex(tree* t,char x) {if (*t NULL)return;if((*t)-datax){release(t);*t NULL;}if (*t ! NULL){deletex((*t)-lchild, x);deletex((*t)-rchild, x);} } void disp(tree* t) {if (*t){printf(%c, (*t)-data);disp((*t)-lchild);disp((*t)-rchild);} } int main() {tree t;buildtree(t);deletex(t, C);disp(t);return 0; } 用ABD##E##CF##G##测试 /*                      A B                C D             E  F            G    */ 12.在二叉树中查找值为 x 的结点试编写算法(用 C语言)打印值为x的结点的所有祖先假设值为X的结点不多于一个。 采用非递归后序遍历最后访问根结点访问到值为 x 的结点时栈中所有元素均为该结点的祖先依次出栈打印. 本题代码如下注释详解 // 寻找指定字符的所有祖先结点 void ancestor(tree* t, char x) {stack s[10]; // 定义一个大小为10的栈用于存储二叉树的结点指针和标记位 int top -1; // 初始化栈顶为-1表示栈为空 while (*t ! NULL || top ! -1) // 当当前节点非空或者栈非空时继续循环 {while (*t ! NULL) // 当当前结点非空时将其入栈并向左子树遍历 {top;s[top].t *t; // 将当前结点入栈 s[top].tag 0; // 标记位设为0表示该结点尚未被访问过 *t (*t)-lchild; // 向左子树遍历 }while (top ! -1 s[top].tag 1) // 当栈非空且栈顶元素的标记位为1时出栈即回退 {top--;}if (top ! -1) // 当栈非空时进行以下操作 {if (s[top].t-data x) // 如果栈顶元素的data字段等于指定字符x则输出所有祖先结点 {printf(所有的祖先结点为\n);for (int i 0; i top; i) // 遍历栈中所有元素不包括栈顶元素并输出其data字段 {printf(%c , s[i].t-data);}break; // 找到指定字符的所有祖先结点后跳出循环 }s[top].tag 1; // 如果栈顶元素的data字段不等于指定字符x将其标记位设为1表示该结点已经被访问过 *t s[top].t-rchild; // 向右子树遍历 }} } 完整测试代码 #includestdio.h #includestdlib.h // 定义一个二叉树结点 typedef struct treenode {char data; //结点存储的数据 struct treenode* lchild, * rchild; // 结点的左右孩子 } treenode, * tree; // 定义一个栈结构 typedef struct {treenode* t; // 栈中存储的是二叉树的结点指针 int tag; // 标记位主要用于记录结点是否已经被访问过 } stack; // 建立二叉树 void buildtree(tree* t) {char ch;ch getchar(); // 从标准输入获取一个字符 if (ch #) // 如果输入的是#则该节点为空 *t NULL;else{*t (treenode*)malloc(sizeof(treenode)); // 为新的结点分配内存空间 (*t)-data ch; // 将输入的字符赋值给节点的data字段 (*t)-lchild NULL; // 初始化结点的左右孩子为空 (*t)-rchild NULL;buildtree((*t)-lchild); // 递归建立左子树 buildtree((*t)-rchild); // 递归建立右子树 } } // 寻找指定字符的所有祖先结点 void ancestor(tree* t, char x) {stack s[10]; // 定义一个大小为10的栈用于存储二叉树的结点指针和标记位 int top -1; // 初始化栈顶为-1表示栈为空 while (*t ! NULL || top ! -1) // 当当前节点非空或者栈非空时继续循环 {while (*t ! NULL) // 当当前结点非空时将其入栈并向左子树遍历 {top;s[top].t *t; // 将当前结点入栈 s[top].tag 0; // 标记位设为0表示该结点尚未被访问过 *t (*t)-lchild; // 向左子树遍历 }while (top ! -1 s[top].tag 1) // 当栈非空且栈顶元素的标记位为1时出栈即回退 {top--;}if (top ! -1) // 当栈非空时进行以下操作 {if (s[top].t-data x) // 如果栈顶元素的data字段等于指定字符x则输出所有祖先结点 {printf(所有的祖先结点为\n);for (int i 0; i top; i) // 遍历栈中所有元素不包括栈顶元素并输出其data字段 {printf(%c , s[i].t-data);}break; // 找到指定字符的所有祖先结点后跳出循环 }s[top].tag 1; // 如果栈顶元素的data字段不等于指定字符x将其标记位设为1表示该结点已经被访问过 *t s[top].t-rchild; // 向右子树遍历 }} } int main() {tree t; // 定义一个二叉树节点指针t buildtree(t); // 建立二叉树 ancestor(t, D); // 找出字符D的所有祖先结点并输出 return 0; } 用ABD##E##CF##G##测试 /*                       A B                        C D                   E      F                 G     */
http://www.dnsts.com.cn/news/7825.html

相关文章:

  • 红包打赏的网站怎么做公司电商网站建设费用怎么记账
  • 网站管理系统软件做木工的网站
  • win7 iis创建网站快速建设网站方案
  • 网站设计简单讲解如何做网站发产品销售
  • 网站目录做301广东的一起做网站
  • 手机移动网络屏蔽的网站行业内做网站的公司排名
  • 联盟网站网站拥有者查询
  • 苏州网站建设搜王道下拉安装wordpress空白
  • iis发布网站慢wordpress替换图片外链
  • 品牌网站建设搜搜磐石网络wordpress博客代码高亮
  • 莆田制作公司网站北京网站建设 优化
  • 手机网站一定要与pc网站一样网站建设所需的基本内容
  • 打开网页时网站顶部显示广告随后消失的广告怎么做全网关键词搜索排行
  • 免费的h5制作网站如何用word做简单的网站
  • 带seo服务的网站定制视频怎样连接到wordpress
  • 广东网站设计哪家好网页制作与网站建设论文
  • 做一个网站成本是多少网站制作需要多少钱?
  • 做网站给源码吗电商模板免费下载
  • 网站模板在线制作查数据的权威网站
  • dedecms网站搬家茶叶网站模板下载
  • 建站收费标准在百度上怎么注册网站
  • 青浦网站建设su35网络推广营销怎么做
  • 简述电子商务网站建设的过程合肥企业网站排名优化
  • 做网站怎么学服务器价格
  • 网站开发电商做网站用什么主机好
  • 怎样保证网站的安全企业创建网站的途径都有啥
  • 快排做网站排名网站管理员权限怎么设置
  • 个人网站模板h5龙华做网站 熊掌号
  • 免费制作软件app的网站dz网站标题
  • 开源展示型网站装潢设计师工资一般多少