当前位置: 首页 > 面试 > 正文

微软面试题(四)

关键字:
1 星2 星3 星4 星5 星 (2 次投票, 评分: 5.00, 总分: 5)
Loading ... Loading ...
baidu_share

4、怎样编写一个程序,把一个有序整数数组放到二叉树中?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 typedef struct Node
 6 {
 7     int v;
 8     struct Node *lchild;
 9     struct Node *rchild;
10 }Node;
11 
12 void Insert(Node *&n, int v) {
13     if (NULL == n)
14     {
15         n = (Node*)malloc(sizeof(Node));
16         n->v = v; n->lchild = n->rchild = NULL;
17         return;
18     }
19     if (v < n->v)
20     {
21         Insert(n->lchild, v);
22     }
23     else
24     {
25         Insert(n->rchild, v);
26     }
27 }
28 
29 void Print(Node *r)
30 {
31     if (NULL == r)
32     {
33         return;
34     }
35     Print(r->lchild);
36     cout << r->v << endl;
37     Print(r->rchild);
38 }
39 
40 Node *root = NULL;
41 
42 void Print1(int a[], int low, int high)
43 {
44     if (low > high)    return;
45     int mid = (low+high)/2;
46     Insert(root, mid);
47     Print1(a, low, mid-1);
48     Print1(a, mid+1, high);
49 }
50 
51 int main()
52 {
53 //     Node *root = NULL;
54 //     for (int i = 0; i < 3; i++)
55 //     {
56 //         Insert(root, i);
57 //     }
58 
59     int a[6];
60     for (int i = 0; i < 6; i++)
61     {
62         a[i] = i;
63     }
64 
65     Print1(a, 0, 5);
66 
67     // Êä³ö²éÕÒ¶þ²æÊ÷
68     Print(root);
69 
70     return 0;
71 }

本文固定链接: http://www.chepoo.com/microsoft-interview-four.html | IT技术精华网

【上一篇】
【下一篇】

微软面试题(四):等您坐沙发呢!

发表评论