首页 / 算法 / 创建二叉树、创建链表等
创建二叉树、创建链表等
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了创建二叉树、创建链表等,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2603字,纯文字阅读大概需要4分钟。
内容图文
方法一:
1 #include <iostream>//创建二叉树,要用二级指针 2 3usingnamespace std; 4 5 typedef struct TreeNode 6{ 7char data; 8struct TreeNode *left; 9struct TreeNode *right; 10}BiTree; 1112void creatBitree(BiTree **T) 13{ 14char ch; 15 cin >> ch; 16if (ch == ‘#‘) 17 { 18 *T = NULL; 19 } 20else21 { 22 *T = (BiTree*)malloc(sizeof(TreeNode)); 23 (*T)->data = ch; 24 cout << (*T)->data << endl; 25 creatBitree(&(*T)->left); 26 creatBitree(&(*T)->right); 27 } 28} 2930int main(void) 31{ 32 BiTree *T = NULL; 33 creatBitree(&T); 3435return0; 36 }
调试结果:
方法二:
1 #include <iostream>//这种做法是错的,没有用二级指针,二叉树是创建成功了,但是只在creatBitree中有效,退出该函数就被系统释放了。传递到函数的T只是一个副本。 2 3usingnamespace std; 4 5 typedef struct TreeNode 6{ 7char data; 8struct TreeNode *left; 9struct TreeNode *right; 10}BiTree; 1112void creatBitree(BiTree *T)//但是这种方法将创建函数的参数改成引用就可以了:void creatBitree(BiTree * &T),(其他地方都不用改) 13{ 14char ch; 15 cin >> ch; 16if (ch == ‘#‘) 17 { 18 T = NULL; 19 } 20else21 { 22 T = (BiTree*)malloc(sizeof(TreeNode)); 23 T->data = ch; 24 cout << T->data << endl; 25 creatBitree(T->left); 26 creatBitree(T->right); 27 } 28} 2930int main(void) 31{ 32 BiTree *T = NULL; 33 creatBitree(T); 3435return0; 36 }
调试结果见方法四!!是一样的!!
方法三:这种方法与前两种不一样的是定义结构体的时候,就定义了一个结构体指针。
1 #include <iostream> 2 3usingnamespace std; 4 5 typedef struct TreeNode 6{ 7char data; 8struct TreeNode *left; 9struct TreeNode *right; 10 }*BiTree; 1112void creatBitree(BiTree *T)//其实此处就相当于一个二级指针,跟方法一类似,此处的BiTree已经是一个指针类型,方法一的只是普通类型。 13{ 14char ch; 15 cin >> ch; 16if (ch == ‘#‘) 17 { 18 *T = NULL; 19 } 20else21 { 22 *T = (BiTree)malloc(sizeof(TreeNode)); 23 (*T)->data = ch; 24 cout << (*T)->data << endl; 25 creatBitree(&(*T)->left); 26 creatBitree(&(*T)->right); 27 } 28} 2930int main(void) 31{ 32 BiTree T = NULL;//此处相当于一个一级指针。 33 creatBitree(&T);//参数是一级指针的地址 3435return0; 36 }
调试结果如下:
方法四:其实这种方法跟方法二一样,用一级指针,参数传递时用引用。
1 #include <iostream> 2 3usingnamespace std; 4 5 typedef struct TreeNode 6{ 7char data; 8struct TreeNode *left; 9struct TreeNode *right; 10 }*BiTree; 1112void creatBitree(BiTree &T) 13{ 14char ch; 15 cin >> ch; 16if (ch == ‘#‘) 17 { 18 T = NULL; 19 } 20else21 { 22 T = (BiTree)malloc(sizeof(TreeNode)); 23 T->data = ch; 24 cout << T->data << endl; 25 creatBitree(T->left); 26 creatBitree(T->right); 27 } 28} 2930int main(void) 31{ 32 BiTree T = NULL; 33 creatBitree(T); 3435return0; 36 }
调试结果如下:
原文:http://www.cnblogs.com/hhboboy/p/5557812.html
内容总结
以上是互联网集市为您收集整理的创建二叉树、创建链表等全部内容,希望文章能够帮你解决创建二叉树、创建链表等所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。