广义表建树
来源:互联网 发布:赵泓霖免费网络公开课 编辑:程序博客网 时间:2024/05/16 09:19
简单的广义表建树,但是却纠结了几个小时,总之是太囧了。。。代码还很糟糕。。。
不过也记录一下,或许以后还是用得上。
殷人昆数据结构 5.37 题
代码:
#include <iostream>using namespace std;#define ADD 5struct treeNode{char val;treeNode * son, * next;};bool isLetter(char a){return ( ( a >= 'a' && a <= 'z' ) || ( a >= 'A' && a <= 'Z' ) );}void buildTree(treeNode * root, char array[], int & id, int len){id++;if( id >= len || array[id] == ',' || array[id] == ')' ) { root->son = NULL; return; }treeNode * last = NULL;treeNode * newNode;while(id < len && array[id] != ')'){if( isLetter(array[id]) ) { newNode = new treeNode;newNode->val = array[id];newNode->next = NULL;if( last == NULL )root->son = newNode;else last->next = newNode;last = newNode;buildTree(newNode, array, id, len);}else id++;}id++;}void convert(treeNode * root, int len){ if( root == NULL ) return;for( int i = 1; i <= len; i++) cout << " "; cout << root->val << endl;convert(root->son, len + ADD);convert(root->next, len);}int main(){ char tree[] = "A(B(C,D),E(F(G,H),I,J),K)"; int id;treeNode * root = new treeNode;root->val = tree[0];root->next = NULL;id = 0;buildTree(root, tree, id, strlen(tree));convert(root, 0);return 0;}
- 广义表建树
- 广义表建树算法
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- //广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- 广义表
- C#初识——VS2010中的实用功能总结
- windows下nginx安装、配置与使用
- build/envsetup.sh分析
- 精神疲惫
- 存档: 小图片平铺做背景(斜纹)
- 广义表建树
- c/c++中与时间相关的问题
- 20111123这一年就这样了
- WinInet分析
- JSP中过滤器get方法乱码解决
- Filter过滤器
- java二叉树的增、删、查、前序遍历、中序遍历和后序遍历 算法 源代码
- Excel2007或2010中使用插件添加填充图案
- 阻止MDI程序启动时自动弹出新建的视