1 Star 0 Fork 0

Littlebear0729/DataStructureAndAlgorithm

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
bintree.cpp 2.23 KB
一键复制 编辑 原始数据 按行查看 历史
Littlebear0729 提交于 2022-05-14 19:47 +08:00 . homework2: BinTree
//
// Created by littlebear on 2022/5/11.
//
#include <iostream>
#include <queue>
#define DATA_TYPE char
using namespace std;
struct BinTreeNode {
DATA_TYPE value;
BinTreeNode *left;
BinTreeNode *right;
};
typedef struct BinTreeNode *PBinTreeNode;
typedef struct BinTreeNode *BinTree;
typedef BinTree *PBinTree;
PBinTreeNode getTree(PBinTree t) {
return *t;
}
PBinTreeNode getLeftTree(PBinTreeNode p) {
return p->left;
}
PBinTreeNode getRightTree(PBinTreeNode p) {
return p->right;
}
PBinTreeNode createRest_BTree() {
PBinTreeNode pbnode;
char ch;
scanf("%c", &ch);
if (ch == '@') pbnode = nullptr;
else {
pbnode = (PBinTreeNode) malloc(sizeof(struct BinTreeNode));
if (pbnode == nullptr) {
printf("Out of space!\n");
return pbnode;
}
pbnode->value = ch;
pbnode->left = createRest_BTree();
pbnode->right = createRest_BTree();
}
return pbnode;
}
PBinTree create_BTree() {
PBinTree pbtree = (PBinTree) malloc(sizeof(BinTree));
if (pbtree != nullptr)
*pbtree = createRest_BTree();
return pbtree;
}
void visit(BinTreeNode *p) {
cout << p->value << " ";
}
void preOrder(BinTreeNode *p) {
if (p != nullptr) {
visit(p);
preOrder(p->left);
preOrder(p->right);
}
}
void inOrder(BinTreeNode *p) {
if (p != nullptr) {
inOrder(p->left);
visit(p);
inOrder(p->right);
}
}
void postOrder(BinTreeNode *p) {
if (p != nullptr) {
postOrder(p->left);
postOrder(p->right);
visit(p);
}
}
void levelOrder(BinTreeNode *p) {
if (p != nullptr) {
queue<BinTreeNode *> q;
q.push(p);
while (!q.empty()) {
BinTreeNode *node = q.front();
q.pop();
visit(node);
if (node->left != nullptr) q.push(node->left);
if (node->right != nullptr) q.push(node->right);
}
}
}
int main() {
PBinTree tree = create_BTree();
//ABDF@@@E@G@@C@IJ@@K@@
printf("PreOrder: ");
preOrder(*tree);
printf("\nInOrder: ");
inOrder(*tree);
printf("\nPostOrder: ");
postOrder(*tree);
printf("\nLevelOrder: ");
levelOrder(*tree);
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/littlebear0729/data-structure-and-algorithm.git
git@gitee.com:littlebear0729/data-structure-and-algorithm.git
littlebear0729
data-structure-and-algorithm
DataStructureAndAlgorithm
master

搜索帮助