怎样编写一个程序,把一个有序整数数组放到二叉树中(按行输出)
来源:互联网 发布:东兴证券交易软件下载 编辑:程序博客网 时间:2024/06/08 01:30
方法1:
#include <stdio.h>#include <stdlib.h>#include "queue.h"struct student {int value;struct student *lchild;struct student *rchild;};void arraytotree(int *a, int len, struct student **p) {if(len) {*p = (struct student*)malloc(sizeof(struct student));(*p)->value = a[len/2];arraytotree(a, len/2, &((*p)->lchild));arraytotree(a+len/2+1, len-len/2-1, &((*p)->rchild));} else {*p = NULL;}}void display_tree(struct student *head) {if(head->lchild)display_tree(head->lchild);printf("%d\t", head->value);if(head->rchild)display_tree(head->rchild);}void display_tree_layer(struct student *head) {Queue *queue = new Queue;printf("%d\t", head->value);if(head->lchild)queue->enqueue(head->lchild);if(head->rchild)queue->enqueue(head->rchild);while(!queue->empty()) {struct student *p = queue->dequeue();printf("%d\t", p->value);if(p->lchild)queue->enqueue(p->lchild);if(p->rchild)queue->enqueue(p->rchild);}}int main() {int a[] = {1,2,3,4,9,10,33,56,78,90};struct student *tree;arraytotree(a, sizeof(a)/sizeof(a[0]), &tree);printf("After convert:\n");display_tree(tree);printf("\n");system("pause");return 0;}
方法2:
#include <iostream>using namespace std;struct BTree {int data;BTree *lchild;BTree *rchild;};bool getBTree(BTree **root, int *a, int &i, const int &Length){if(i < Length){*root = new BTree();(*root)->data = a[i];getBTree(&((*root)->lchild),a,++i,Length);getBTree(&((*root)->rchild),a,++i,Length);}else*root = NULL;return true;}bool showBTree(BTree *root){if(root){cout<<root->data<<" ";if(showBTree(root->lchild))if(showBTree(root->rchild)) return true;return false;}elsereturn true;}int main(){int a[10] = {1,2,3,4,5,6,7,8,9,0};BTree *root;int i = 0, Length = 10;getBTree(&root,a,i,10);showBTree(root);system("pause");return 0;}
为何getBTree函数的第一个参数是指针的指针,在使用这个函数的时候,需要给指针的指针才行?暂时想不通……
- 怎样编写一个程序,把一个有序整数数组放到二叉树中(按行输出)
- 怎样编写一个程序,把一个有序整数数组放到二叉树中
- 怎样编写一个程序,把一个有序整数数组放到二叉树中?
- 怎样编写一个程序,把一个有序整数数组放到二叉树中
- 5、怎样编写一个程序,把一个有序整数数组放到二叉树中
- 怎样编写一个程序,把一个有序整数数组放到二叉树中
- 怎样编写一个程序,把一个有序整数数组放到二叉树中?
- 86 怎样编写一个程序,把一个有序整数数组放到二叉树中
- 编写一个程序,把一个有序整数数组放到二叉树中。
- 编写一个程序,把一个有序整数数组放到二叉树中
- 微软等数据结构+算法面试100题(5)--怎样编写一个程序,把一个有序整数数组放到二叉树中
- 把一个有序整数数组放到二叉树中
- 把一个有序整数数组放到二叉树中
- 把一个有序整数数组放到二叉树中
- 把一个有序整数数组放到二叉树中
- 把一个有序整数数组放到二叉树中
- 怎样编写一个程序,把一个有序整数数组放到二叉树中? 编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
- 题目:把一个有序整数数组放到二叉树。
- C#文档注释规范
- Excute shell and read the output
- Android ADT安装遭遇问题
- 作为一只程序猿,我要说说IT业的研发工程师!
- VS2010下 MSDN经典视图H3Viewer 默认浏览器的设置
- 怎样编写一个程序,把一个有序整数数组放到二叉树中(按行输出)
- 第七周任务一
- Linux Amin汇总
- c++中设计模式这个词--痛苦的当代程序员--人生规划
- asp.net控件的使用1
- 艰难的开始——重构
- 再学java基础(8)【 异常 】 (借鉴)
- 第七周实验报告(1)
- 命令模式與合成模式並用實現宏命令功能例述