#include <iostream>
#include <stack>
struct BinTreeNode {
char data;
BinTreeNode *leftChild;
BinTreeNode *rightChild;
};
// 前序遍历二叉树
void PreOrder(BinTreeNode *p) {
if(p != NULL) {
std::cout << p->data << " ";
PreOrder(p->leftChild);
PreOrder(p->rightChild);
}
}
// 广义表 -> 二叉树
BinTreeNode *TableToBinary() {
std::stack<BinTreeNode*> s;
char ch;
int k; // 判读是左孩子还是右孩子
BinTreeNode *current, *newNode, *root;
root = NULL;
k = 1;
std::cout << "请输入广义表(以'#'结束):";
std::cin >> ch; // 输入第一个字符
while(ch != '#') {
switch(ch) {
case '(': // 左孩子准备来了
s.push(newNode);
k = 1;
break;
case ',': // 右孩子准备来了
k = 2;
break;
case &#
C++ 广义表转二叉树,二叉树转广义表
最新推荐文章于 2024-04-21 20:55:42 发布