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

【数据结构】树的基本操作

要求:

        熟悉树的基本定义,树的存储方式,建立方法及相关操作,能够根据实际情况选择合适的存储结构。

        1、掌握树的遍历的基本操作

        2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。        

        以二叉链表作存储结构,试编写前序,中序,后序遍历二叉树算法

代码实现:

#include<stdio.h>
#include<stdlib.h>
#define BITREE_NODE_TYPE_ELEMENT chartypedef struct bi_tree_node
{BITREE_NODE_TYPE_ELEMENT data;struct bi_tree_node* LChild;struct bi_tree_node* RChild;
}BiTree_Node, * BiTree;void visit(BITREE_NODE_TYPE_ELEMENT data)
{putchar(data);
}void createBiTree(BiTree* bi_tree)
{char ch;ch = getchar();if (ch == '*')*bi_tree = NULL;else{*bi_tree = (BiTree)malloc(sizeof(BiTree_Node));(*bi_tree)->data = ch;createBiTree(&((*bi_tree)->LChild));createBiTree(&((*bi_tree)->RChild));}
}void preOrder(BiTree root1){if (root1 != NULL){visit(root1->data);	preOrder(root1->LChild);	preOrder(root1->RChild);}
}void inOrder(BiTree root2){if (root2 != NULL){inOrder(root2->LChild);	visit(root2->data);	inOrder(root2->RChild);}
}void postOrder(BiTree root3){if (root3 != NULL){postOrder(root3->LChild);postOrder(root3->RChild);visit(root3->data);}
}int main(){BiTree bi_tree = NULL;puts("请按照先序序列输入一棵二叉树的结点数据并用'*'来代表空值:");createBiTree(&bi_tree);printf("\n先序序列:");preOrder(bi_tree);printf("\n中序序列:");inOrder(bi_tree);printf("\n后序序列:");postOrder(bi_tree);putchar('\n');return 0;
}

执行结果:

http://www.dtcms.com/a/265883.html

相关文章:

  • 阿里云服务网格ASM实践
  • 抗辐照芯片在核电厂火灾探测器中的应用优势与性能解析
  • springMvc的简单使用:要求在浏览器发起请求,由springMVC接受请求并响应,将个人简历信息展示到浏览器
  • Java 原生 HTTP Client
  • https如何利用工具ssl证书;使用自己生成的证书
  • http、SSL、TLS、https、证书
  • 【交互设计】UI 与 UX 简介:从核心概念到行业实践
  • 微算法科技(NASDAQ MLGO)基于量子图像处理的边缘检测算法:开拓图像分析新视野
  • [2025CVPR]SEEN-DA:基于语义熵引导的领域感知注意力机制
  • 通过观看数百个外科手术视频讲座来学习多模态表征|文献速递-最新论文分享
  • 【数据结构】哈希——闭散列/开散列模拟实现(C++)
  • [论文阅读] 人工智能 | 在非CUDA硬件上运行几何学习:基于Intel Gaudi-v2 HPU的PyTorch框架移植实践
  • Stable Diffusion 项目实战落地:AI照片修复 第一篇 从黑白到彩色:用AI给照片上色的魔法之旅
  • stm32f103c8t6---ymodem协议串口IAP升级(只教怎么操作,略讲原理,100%成功!)
  • laravel基础:隐式模型绑定的用法和介绍
  • 【AI】大语言模型(LLM) NLP
  • STM32-第二节-GPIO输入(按键,传感器)
  • [科普]UART、RS232、RS422、RS485、TTL:深入解析串行通信家族
  • uniapp 使用ffmpeg播放rtsp
  • 网络基础(1)
  • 铁血联盟3 中文 免安 离线运行版
  • 基于路径质量的AI负载均衡异常路径检测与恢复策略
  • HAL库(Hardware Abstraction Layer,硬件抽象层)核心理解
  • 遇到该问题:kex_exchange_identification: read: Connection reset`的解决办法
  • VBA初学3----实战(VBA实现Excel转csv)
  • 《2025年攻防演练必修漏洞清单》
  • C++11 shared_ptr 原理与详细教程
  • uniapp打包微信小程序主包过大问题_uniapp 微信小程序时主包太大和vendor.js过大
  • C++ 实现简单二叉树操作:插入节点与数据打印
  • 【playwright篇】教程(十七)[html元素知识]