首页 > 代码库 > 《数据结构与算法分析》学习笔记(四)——树ADT
《数据结构与算法分析》学习笔记(四)——树ADT
一、二叉树
1、定义
二叉树是一棵树,其中每个节点都不能多于2个儿子。
2、实现
typedef struct TreeNode *PtrToNode;typedef PtrToNode Tree;typedef char ElementType;struct TreeNode{ ElementType Element; Tree Left; Tree Right;};
3、通过后序表达式构造一个表达式树
void bianli(Tree t){ if (t) { bianli(t->Left); cout << t->Element << " "; bianli(t->Right); }}int main(){ char c; stack<Tree> treeStack; while (1) { cout << "Please enter a suffix expression!(the last must is ‘;‘)" << endl; cin >> c; if (c == ‘;‘) { break; } else { if (c == ‘+‘ || c == ‘-‘ || c == ‘*‘ || c == ‘/‘) { auto t2 = treeStack.top(); treeStack.pop(); auto t1 = treeStack.top(); treeStack.pop(); PtrToNode temp2 = new(struct TreeNode); temp2->Element = c; temp2->Left = t1; temp2->Right = t2; treeStack.push(temp2); } else { PtrToNode temp; temp = new(struct TreeNode); temp->Element = c; temp->Left = temp->Right = nullptr; treeStack.push(temp); } } } auto t = treeStack.top(); bianli(t); return 0;}
《数据结构与算法分析》学习笔记(四)——树ADT
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。