• 【数据结构】二叉树的创建与遍历

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <math.h>
    
    
    #define OK 1
    #define ERROR 0
    #define TRUE 1
    #define FALSE 0
    
    #define MAXSIZE 100    /* 存储空间初始分配量 */
    
    typedef int Status;
    
    typedef char TElemType; /* 假定二叉树的元素都是字符类型*/
    TElemType Nil = ' ';
    
    typedef struct BiTNode
    {
        TElemType data;
        struct BiTNode *lchild, *rchild;
    }BiTNode, *BiTree;
    
    
    /* 模拟生成char数组, 用于构造二叉树所生产的数据***************/
    int index$ = 1;
    typedef char String[24];
    String str;
    
    /* 将chars 用String结构体表示*/
    Status StrAssign(String S, char *chars)
    {
        int i;
        if (strlen(chars) > MAXSIZE) {
            return ERROR; // 超过了最大容量
        } else {
            // 第一个位置存放字符串的长度
            S[0] = strlen(chars);
            for (i= 1; i < S[0]; i++) {
                S[i] = *(chars + i -1);
            }
    
            return OK;
        }
    
    
    }
    
    /* ******************************************************/
    
    /* 构造空的的二叉树T */
    Status InitBiTree(BiTree *T)
    {
        *T = NULL;
        return OK;
    }
    
    /* 构造二叉树T, 使用的是递归创建的方法 */
    void CreateBiTree(BiTree  *T)
    {
    
    
        if (index$ == strlen(str)) // 所有的元素都分配完毕, 即结束
            return;
        TElemType ch = str[index$++];
    
    
        if (ch == '#') {
            // 碰到#号, 停止生成新的结点
            *T = NULL;
        } else {
            *T = (BiTree)malloc(sizeof(BiTNode));
            if (!*T){
                exit(OVERFLOW); // malloc失败
            }
    
            (*T)->data = ch; // 生成根节点
            CreateBiTree(&(*T)->lchild); // 构造左子树
            CreateBiTree(&(*T)->rchild); // 构造右子树
        }
    
    
    }
    
    /* 前序遍历*/
    void PreOrderTraverse(BiTree *T)
    {
        if (*T == NULL)
            return;
    
        printf("%c ", (*T)->data);
        PreOrderTraverse(&(*T)->lchild);
        PreOrderTraverse(&(*T)->rchild);
    }
    
    
    
    int main() {
    
        BiTree T;
        InitBiTree(&T);
    
        // 构造字符串
        StrAssign(str, "ABDH#K###E##CFI###G#J##");
    
    
        // 构造二叉树
        CreateBiTree(&T);
    
        PreOrderTraverse(&T);
    
    
        return 0;
    }
    相关文章
    相关标签/搜索
    福彩网天下彩特彩吧 新密市| 松江区| 汝南县| 名山县| 尼玛县| 林西县| 天全县| 景谷| 新宾| 嵊泗县| 盐源县| 合阳县| 三穗县| 丘北县| 冷水江市| 德保县| 洪泽县| 临沭县| 盐池县| 禹州市| 酉阳| 镇远县| 耿马| 奉化市| 河南省| 兴义市| 唐山市| 汾西县| 晋州市| 阳东县| 尚志市| 乌鲁木齐县| 镇安县| 天长市| 綦江县| 兴安盟| 镇平县| 类乌齐县| 临清市| 定远县| 大足县| 普宁市| 柳江县| 尉氏县| 青田县| 汾西县| 三原县| 茶陵县| 武安市| 忻城县| 英德市| 留坝县| 浮梁县| 平顶山市| 嘉义市| 扬中市| 铜鼓县| 天长市| 商南县| 英山县| 青浦区| 梧州市| 汉阴县| 南宫市| 平阳县| 阜宁县| 枣阳市| 吉首市| 县级市| 琼结县| 张掖市| 洪江市| 汤阴县| 清水河县| 三门县| 谷城县| 富川| 靖边县| 集贤县| 桂林市| 宾川县| 垣曲县| 南陵县| 抚松县| 长治市| 陆良县| 荥阳市| 中阳县| 延安市| 无棣县| 巴林左旗| 南阳市| 通渭县| 柞水县| 顺义区| 洮南市| 阳春市| 大渡口区| 二连浩特市| 扎鲁特旗| 项城市| 铁岭县| 白沙| 阿尔山市| 济南市| 崇阳县| 靖州| 洛扎县| 柳林县| 临江市| 连平县| 麟游县| 皮山县| 托里县| 沙雅县| 石泉县| 中方县| 郧西县| 壶关县| 洛川县| 临沧市| 汝阳县| 舟曲县| 峨边| 本溪| 瑞丽市| 湄潭县| 沾益县| 马关县| 丁青县| 和政县| 柳江县| 安阳县| 西吉县| 潍坊市| 成安县| 望奎县| 淮阳县| 吉隆县| 馆陶县| 金湖县| 荆门市| 博爱县| 吉水县| 上饶市| 睢宁县| 化德县| 桃园市| 凭祥市| 杭锦后旗| 兴国县| 永靖县| 体育| 油尖旺区| 陇南市| 西青区| 博野县| 宁都县| 陆良县| 石渠县| 雷山县| 龙里县| 化州市| 九江县| 泽普县| 剑阁县| 随州市| 丰镇市| 奇台县| 中阳县| 恩施市| 宕昌县| 舒城县| 惠来县| 清镇市| 红原县| 神农架林区| 兴宁市| 安庆市| 宁武县| 太保市| 佛冈县| 江源县| 习水县| 潮州市| 铁岭市| 田阳县| 从江县| 南郑县| 马边| 颍上县| 宣城市| 弋阳县| 泰宁县| 巴林左旗| 天门市| 平谷区| 平江县| 阜平县| 冷水江市| 微博| 黔西| 宁武县| 潮安县| 佛山市| 孟津县| 永春县| 文安县| 谢通门县| 桃江县| 德清县| 文安县| 芒康县| 福州市| 蒙自县| 延庆县| 泗洪县| 虞城县| 仁寿县| 玉树县| 长岭县| 合川市| 海口市| 古蔺县| 苍梧县| 江北区| 宁津县| 大洼县| 赣州市| 花莲县| 聊城市| 横山县| 塘沽区| 甘孜县| 疏附县| 林西县| 连江县| 睢宁县| 始兴县| 杭锦旗| 和静县| 新和县| 绵阳市| 桐庐县| 屯留县| 曲松县| 江山市| 施甸县| 彰化县| 衡水市| 肥西县| 新干县| 临澧县| 武隆县| 夏津县| 邵武市| 闽侯县| 安庆市| 呼图壁县| 龙川县| 江阴市| 江华| 建平县| 南投县| 诸暨市| 韶山市| 册亨县| 巴马| 皮山县| 鹤岗市| 绥宁县| 上高县| 灌云县| 开化县| 横峰县| 北宁市| 嘉峪关市| 汝城县| 突泉县| 菏泽市| 阿坝| 隆化县| 海门市| 赣榆县| 郁南县| 绥江县| 德格县| 武鸣县| 元谋县| 子洲县| 青铜峡市| 沂南县| 永靖县| 衡阳市| 图木舒克市| 宜宾县| 正定县| 贵定县| 健康| 江源县| 遂川县| 光泽县| 慈溪市| 石渠县| 康马县| 左贡县| 天全县| 大邑县| 天长市| 博乐市| 岑溪市| 句容市| 曲松县| 静乐县| 雅安市| 澜沧| 子洲县| 武强县| 嵊州市| 漳平市| 江永县| 枣阳市| 湘阴县| 肇庆市| 樟树市| 姜堰市| 黄大仙区| 安达市| 浪卡子县| 盐城市| 邛崃市| 凤城市| 类乌齐县| 桦川县| 大荔县| 东乌珠穆沁旗| 金寨县| 嘉善县| 无极县| 鄯善县| 开江县| 望江县| 阿坝| 鹤山市| 海阳市| 民乐县| 安福县| 达州市| 长治市| 友谊县| 松溪县| 东至县| 桦川县| 霍山县| 开封县| 太和县| 始兴县| 庆元县| 阿荣旗| 九龙县| 勃利县| 蓬安县| 天台县| 长沙县| 云林县| 富阳市| 巩义市| 新安县| 保康县| 弥渡县| 金湖县| 义乌市| 克什克腾旗| 武义县| 赤城县| 温泉县| 郯城县| 乌苏市| 双鸭山市| 蓝田县| 农安县| 丹凤县| 叶城县| 布尔津县| 石柱| 个旧市| 安康市| 马边| 沙坪坝区| 揭阳市| 呈贡县| 射洪县| 苍南县| 虹口区| 同德县| 边坝县| 镇江市| 万山特区| 南涧| 玉门市| 巴林右旗| 济阳县| 宽城| 收藏| 临泽县| 兰州市| 赤水市| 易门县| 宁都县| 阿拉尔市| 灵宝市| 清徐县| 曲阜市| 榆中县| 平阴县| 百色市| 蒙山县| 正安县| 康马县| 呼图壁县| 延庆县| 三都| 肇庆市| 海城市| 伽师县| 隆昌县| 黑山县| 贡觉县| 杨浦区| 亚东县| 盖州市| 绥阳县| 花莲市| 铜川市| 泰安市| 洞口县| 吉林省| 徐汇区| 北辰区| 噶尔县| 新龙县| 宜章县| 五常市| 班玛县| 申扎县| 恩施市| 鲜城| 启东市| 保康县| 涿鹿县| 奉新县| 广东省| 临洮县| 丹东市| 东平县| 兴安县| 威远县| 阿克陶县| 陵水| 罗甸县| 始兴县| 米林县| 佳木斯市| 内江市| 灵石县| 饶平县| 瓦房店市| 伊春市| 山丹县| 德兴市| 涟源市| 拉孜县| 石泉县| 五原县| 马公市| 陈巴尔虎旗| 北票市| 晋州市| 巴东县| 无为县| 都兰县| 仙居县| 广南县| 新民市| 广饶县| 丁青县| 金坛市| 剑阁县| 财经| 承德县| 阿巴嘎旗| 乐安县| 辰溪县| 雷波县| 德昌县| 内江市| 连州市| 安溪县| 元阳县| 五大连池市| 图片| 天台县| 喜德县| 苗栗市| 桃园县| 乌鲁木齐市| 友谊县| 仁寿县| 四川省| 洪湖市| 福清市| 图们市| 通化市| 台中县| 宜昌市| 二连浩特市| 唐海县| 兴业县| 新巴尔虎左旗| 和林格尔县| 花垣县| 陆丰市| 中山市| 巴里| 井冈山市| 姚安县| 筠连县| 钟祥市| 孙吴县| 固阳县| 谢通门县| 舞钢市| 墨江| 明水县| 定结县| 绥化市| 泾川县| 高安市| 苗栗市| 乐山市| 鄂温| 宁晋县| 双牌县| 凌云县| 泗水县| 五河县| 兰西县| 台东市| 遂平县| 读书| 怀来县| 福鼎市| 天全县| 和静县| 含山县| 漯河市| 会同县| 垫江县| 安顺市| 六枝特区| 保亭| 辰溪县| 盱眙县| 宿松县| 吴桥县| 喜德县| 延吉市| 呼伦贝尔市| 木里| 上高县| 巧家县| 峨山| 宝清县| 阳西县| 资兴市| 冕宁县| 洱源县| 股票| 石河子市| 大同县| 南投市| 镇远县| 响水县| 隆尧县| 彭阳县| 鄢陵县| 嘉黎县| 黄浦区| 开封市| 大邑县| 革吉县| 明星| 潞城市| 锡林郭勒盟| 安丘市| 鄄城县| 望奎县| 肃北| 库伦旗| 南皮县| 突泉县| 福泉市| 五原县| 林周县| 嵊泗县| 桑植县| 佛坪县| 保定市| 镇江市| 海伦市| 天长市| 广丰县| 建湖县| 杭锦后旗| 开鲁县| http://m.swmrzl.fit http://wap.dijomv.fit http://wap.bm1961loanz.fit http://www.iaqqod.fit http://m.uukrpb.fit http://shzxld.fit http://wap.ovdvvn.fit http://ruaoqo.fit http://wap.kgwvuf.fit http://olsgeg.fit http://wap.vpufvt.fit http://gujxvy.fit http://wap.sawhkz.fit http://ixklms.fit http://wap.duhbsf.fit http://ddwhyv.fit http://wap.kbkhug.fit http://lzyawc.fit