青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大漠落日

while(!dead) study++;
posts - 46, comments - 126, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
  1#include <stdio.h>
  2#include <stdarg.h>
  3
  4#ifndef bool
  5#define bool unsigned int
  6#define false    0
  7#define true    1
  8#endif
  9
 10#ifndef NULL
 11#define NULL    0
 12#endif
 13
 14#define traversal_output
 15
 16/* traversal order */
 17typedef enum {
 18    NLR    = 0,    /* preorder */
 19    LNR = 1,    /* inorder */
 20    LRN = 2        /* postorder */
 21}
Order;
 22
 23typedef struct _BTNode{
 24    struct BTNode *l_child;
 25    struct BTNode *r_child;
 26    void *data;
 27}
BTNode;
 28
 29BTNode *create_node(void)
 30{
 31    BTNode *node = (BTNode *)malloc(sizeof(BTNode));
 32    
 33    if (node != NULL) {
 34        node->data = NULL;
 35        node->l_child = NULL;
 36        node->r_child = NULL;
 37    }

 38    
 39    return node;
 40}

 41
 42void destroy_node(BTNode *node)
 43{
 44    free(node);
 45    node = NULL;
 46}

 47
 48void bt_printf(const char *fmt, )
 49{
 50#ifdef traversal_output
 51    va_list list;
 52    char buf[256];
 53    va_start(list, fmt);
 54    vsnprintf(buf, sizeof(buf), fmt, list);
 55    printf("%s", buf);
 56    va_end(list);
 57#endif
 58}

 59
 60BTNode *insert_child(BTNode *parent, bool left, void *data)
 61{
 62    BTNode *node;
 63    if (parent == NULL)    {
 64        return NULL;
 65    }

 66
 67    if ((node = create_node()) == NULL) {
 68        return NULL;
 69    }

 70
 71    node->data = data;
 72
 73    if (left) {
 74        parent->l_child = node;
 75    }

 76    else {
 77        parent->r_child = node;
 78    }

 79
 80    return node;
 81}

 82
 83void remove_child(BTNode *parent, BTNode *node, bool destroy)
 84{
 85    if (parent == NULL || node == NULL) {
 86        return;
 87    }

 88
 89    if (parent->l_child == node) {
 90        parent->l_child = NULL;
 91    }

 92    else if (parent->r_child == node) {
 93        parent->r_child = NULL;
 94    }

 95    else {
 96        return;
 97    }

 98
 99    if (destroy) {
100        destroy_node(node);
101    }

102}

103
104BTNode *NLR_search(BTNode *parent, void *data)
105{
106    BTNode *node = NULL;
107
108    if (parent == NULL) {
109        return NULL;
110    }

111    
112    bt_printf("->%d\n"*(int *)(parent->data));
113
114    //首先訪問中間
115    if (parent->data == data){
116        return parent;
117    }

118    
119    if ((node = NLR_search(parent->l_child, data)) == NULL) {
120        return NLR_search(parent->r_child, data);
121    }

122    return node;
123}

124
125BTNode *LNR_search(BTNode *parent, void *data)
126{
127    BTNode *node = NULL;
128
129    if (parent == NULL) {
130        return NULL;
131    }

132
133    //首先訪問左邊
134    node = LNR_search(parent->l_child, data);
135
136    bt_printf("->%d\n"*(int *)(parent->data));
137
138    if (node == NULL) {
139        if (parent->data == data) {
140            return parent;
141        }

142        else {
143            return LNR_search(parent->r_child, data);
144        }

145    }

146    return node;
147}

148
149BTNode *LRN_search(BTNode *parent, void *data)
150{
151    BTNode *node = NULL;
152
153    if (parent == NULL) {
154        return NULL;
155    }

156
157    //首先訪問右邊
158    node = LRN_search(parent->r_child, data);
159
160    if (node == NULL) {
161        node = LRN_search(parent->l_child, data);
162        if (node == NULL && parent->data == data) {
163            node = parent;
164        }

165    }

166
167    bt_printf("->%d\n"*(int *)(parent->data));
168
169    return node;
170}

171
172BTNode *find_node(BTNode *parent, void *data, Order order)
173{
174    if (order == NLR) {
175        return NLR_search(parent, data);
176    }

177    else if (order == LNR) {
178        return LNR_search(parent, data);
179    }

180    else if (order == LRN) {
181        return LRN_search(parent, data);
182    }

183    return NULL;
184}

185
186/*****************************************
187 *    test code
188 *****************************************/

189
190//我們來找它
191void *target;
192
193BTNode *insert_binary_node(BTNode *parent, bool left, int num)
194{
195    int *data;
196    data = (int *)malloc(sizeof(int));
197    *data = num;
198    return insert_child(parent, left, (void *)data);
199}

200
201/*                    root(100)
202 *                    /  \ 
203 *                   1    2
204 *                  /    / \
205 *                 3      4   5
206 *                / \         / \
207 *             NULL  0   NULL NULL
208 */

209BTNode *create_binary_tree()
210{
211    BTNode *root, *node;
212    
213    root = create_node();
214    root->data = (int *)malloc(sizeof(int));
215    *(int *)(root->data) = 100;
216
217    //構(gòu)建左邊樹
218    node = insert_binary_node(root, true1);
219    node = insert_binary_node(node, true3);
220    node = insert_binary_node(node, false0);
221
222    //這就是我們要找的目標
223    target = node->data;
224    
225    //構(gòu)建右邊樹
226    node = insert_binary_node(root, false2);
227    insert_binary_node(node, true4);
228    insert_binary_node(node, false5);
229    
230    return root;
231}

232
233void destroy_binary_tree(BTNode *root)
234{
235    //用LRN遍歷并銷毀每個節(jié)點
236}

237
238void main(int argc, char *argv[])
239{
240    BTNode *root, *node;
241
242    root = create_binary_tree();
243
244    node = find_node(root, target, NLR);
245    printf("NLR\ttarget=%d\n\n"*(int *)(node->data));
246
247    node = find_node(root, target, LNR);
248    printf("LNR\ttarget=%d\n\n"*(int *)(node->data));
249
250    node = find_node(root, target, LRN);
251    printf("LRN\ttarget=%d\n\n"*(int *)(node->data));
252
253    destroy_binary_tree(root);
254
255    getchar();
256}

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区欧美激情| 亚洲高清网站| 亚洲日本成人网| 欧美一区二区三区免费观看| 国产精品va在线播放我和闺蜜| 久久精品成人一区二区三区蜜臀 | 亚洲第一毛片| 国产一区二区三区四区hd| 国产精品盗摄久久久| 欧美日韩第一区| 欧美理论电影在线观看| 牛牛影视久久网| 亚洲深夜福利视频| 亚洲巨乳在线| 激情综合五月天| 国产欧美短视频| 国产精品日韩高清| 国产欧美一区二区三区沐欲| 麻豆精品视频在线观看视频| 久久久久天天天天| 久久精品一级爱片| 久久人人超碰| 欧美精品成人一区二区在线观看 | 亚洲精品乱码久久久久久蜜桃麻豆| 韩国v欧美v日本v亚洲v| 国产亚洲欧美一区二区| 国产一区二区三区免费观看| 精品二区视频| 亚洲久久在线| 亚洲一区精品视频| 久久av最新网址| 久久婷婷国产综合精品青草| 麻豆成人91精品二区三区| 欧美成在线观看| 99国产精品久久久久久久久久| 一区二区欧美国产| 欧美一区二区三区播放老司机 | 亚洲高清毛片| 亚洲精品一区久久久久久| 亚洲一区二区视频| 久久裸体艺术| 午夜天堂精品久久久久| 男女激情视频一区| 国产精品欧美日韩| 亚洲观看高清完整版在线观看| 日韩午夜精品视频| 午夜在线视频一区二区区别| 久久午夜av| 亚洲作爱视频| 久久夜色精品国产欧美乱极品| 欧美精品激情在线| 欧美精品一区二区精品网 | 狠狠色综合网站久久久久久久| 日韩视频中文| 久久久精彩视频| 日韩午夜剧场| 欧美www在线| 国内精品久久久| 亚洲欧美国产精品桃花| 亚洲三级免费观看| 国产亚洲欧美一区| 一区二区高清视频在线观看| 久久精品中文| 中文无字幕一区二区三区| 久久综合一区二区| 好吊妞**欧美| 欧美在线看片| 亚洲少妇在线| 欧美日韩亚洲一区在线观看| 在线观看中文字幕不卡| 久久高清福利视频| 夜夜狂射影院欧美极品| 欧美激情1区2区| 在线免费高清一区二区三区| 性久久久久久久| 亚洲午夜精品久久| 欧美午夜寂寞影院| 欧美一区二区三区视频免费播放| 亚洲欧美卡通另类91av| 国产一区二区三区在线观看精品| 欧美性大战xxxxx久久久| 一区二区三区国产在线| 久久蜜臀精品av| 欧美制服丝袜| 国内精品一区二区三区| 久久精品国产999大香线蕉| 亚洲一区二区三区视频播放| 免费成人高清视频| 亚洲国产欧美一区二区三区久久| 蜜桃av久久久亚洲精品| 久久三级视频| 国产亚洲激情在线| 久久久最新网址| 久久夜色精品国产噜噜av| 亚洲国产精品精华液网站| 欧美高清在线观看| 欧美日韩国产欧美日美国产精品| 欧美专区中文字幕| 欧美激情综合色综合啪啪| 午夜综合激情| 欧美第一黄网免费网站| 久久精品盗摄| 欧美午夜精品久久久久免费视| 日韩午夜在线| 亚洲一区二区四区| 欧美三日本三级少妇三99| 午夜久久一区| 国产精品国码视频| 国产麻豆一精品一av一免费| 久久野战av| 国产精品二区在线| 欧美激情一区二区| 国产精品综合色区在线观看| 欧美激情亚洲自拍| 狠狠色丁香婷婷综合影院| 亚洲精品影视| 亚洲人成免费| 久久免费视频在线| 久久黄色影院| 久久青草福利网站| 国产美女精品人人做人人爽| 欧美激情va永久在线播放| 国产精品羞羞答答| 日韩视频不卡中文| 日韩天堂av| 美女免费视频一区| 美女任你摸久久| 国产一区二区三区在线免费观看 | 性欧美1819sex性高清| 亚洲视频欧美在线| 欧美精品在线免费| 亚洲国产91色在线| 在线看片欧美| 久久久久一本一区二区青青蜜月| 欧美一区二区在线| 国产日韩欧美成人| 久久超碰97中文字幕| 久久精品国产欧美激情| 国产区亚洲区欧美区| 香蕉久久一区二区不卡无毒影院 | 一区二区三区日韩欧美精品| 一本色道久久| 欧美天堂亚洲电影院在线观看| 亚洲毛片av在线| 亚洲在线观看| 国产精品午夜视频| 欧美一区二区三区四区夜夜大片| 久久成人一区二区| 一区二区三区在线观看视频| 老司机一区二区三区| 亚洲大片精品永久免费| 亚洲免费观看高清在线观看 | 亚洲一区在线播放| 国产精品三区www17con| 午夜精品视频在线观看| 久久久综合香蕉尹人综合网| 精品av久久707| 欧美激情免费在线| 亚洲系列中文字幕| 另类图片综合电影| 日韩视频欧美视频| 国产精品美女一区二区在线观看| 欧美亚洲视频| 亚洲国产欧美一区二区三区丁香婷| 亚洲四色影视在线观看| 国产亚洲欧美日韩一区二区| 女同一区二区| 亚洲午夜羞羞片| 欧美大片免费观看在线观看网站推荐| 99精品久久| 狠狠色狠狠色综合日日tαg| 欧美激情一级片一区二区| 亚洲午夜久久久| 久久9热精品视频| 国产精品久久77777| 亚洲一区二区成人在线观看| 久久久久久精| 日韩视频一区二区三区| 国产欧美一区二区三区久久人妖| 免费精品视频| 亚洲综合日韩在线| 亚洲黄网站黄| 久久久久九九九| 亚洲视频观看| 亚洲高清资源| 国内精品视频在线观看| 国产精品成人在线| 免费短视频成人日韩| 亚洲欧美激情一区| 亚洲美女av网站| 欧美国产一区视频在线观看| 欧美一区午夜精品| 国产精品99久久久久久人| 亚洲国产成人久久| 国产一区二区在线观看免费播放| 国产精品theporn88| 欧美jizz19hd性欧美| 久久精品国产v日韩v亚洲| 亚洲视频在线二区| 99国产一区二区三精品乱码|