国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

數據結構實驗之二叉樹七:葉子問題

2019-11-08 19:29:53
字體:
來源:轉載
供稿:網友

數據結構實驗之二叉樹七:葉子問題 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic PRoblem Description

已知一個按先序輸入的字符序列,如abd,,eg,,,cf,,,(其中,表示空結點)。請建立該二叉樹并按從上到下從左到右的順序輸出該二叉樹的所有葉子結點。 Input

輸入數據有多行,每一行是一個長度小于50個字符的字符串。 Output

按從上到下從左到右的順序輸出二叉樹的葉子結點。 Example Input

abd,,eg,,,cf,,, xnl,,i,,u,, Example Output

dfg uli Hint

這題其實也沒啥,不過就是層序遍歷而已,我卻搞那么一會沒出來,居然還想要先還原整棵樹再搞,還是之前的東西沒學通透啊!看來以后還得努力仔細的學。

#include <stdio.h>#include <stdlib.h>int i;typedef struct node{ char data; struct node *l,*r;}node;node *create(char *str){ node *root; if(str[i]==','){ i++; root = NULL; } else{ root = (node *)malloc(sizeof(struct node)); root->data = str[i++]; root->l = create(str); root->r = create(str); } return root;}void *print_leaves(node *root){ if(root==NULL) return 0; int in = 0,out = 0; node *temp[100]; temp[in++] = root; while(in>out){ if(temp[out]){ if(temp[out]->l==NULL&&temp[out]->r==NULL) printf("%c",temp[out]->data); else{ temp[in++] = temp[out]->l; temp[in++] = temp[out]->r; } } out++; }}int main(){ char str[100]; while(~scanf("%s",str)){ i = 0; node *root = create(str); print_leaves(root); printf("/n"); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安龙县| 睢宁县| 海门市| 什邡市| 灵宝市| 如皋市| 新疆| 平罗县| 阳江市| 藁城市| 宜丰县| 尖扎县| 灵武市| 鲁甸县| 永城市| 沂源县| 海兴县| 石嘴山市| 白河县| 威海市| 神农架林区| 鄂温| 囊谦县| 旬邑县| 永吉县| 枣庄市| 阜阳市| 明溪县| 光泽县| 曲阜市| 临夏市| 洛南县| 郑州市| 安庆市| 平遥县| 原平市| 新民市| 耒阳市| 冷水江市| 利川市| 涟源市|