<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ChenGen

    一切歸零,重新開始
    隨筆 - 13, 文章 - 10, 評論 - 21, 引用 - 0
    數(shù)據(jù)加載中……

    復習二叉排序樹

    ???二叉排序數(shù)是一種很重要的數(shù)據(jù)結(jié)構(gòu),今天復習了一下如何創(chuàng)建一棵二叉排序數(shù)&二叉排序數(shù)的兩種中序遍歷方法——遞歸中序遍歷&非遞歸的中序遍歷。

    ???宏定義&頭文件:

    #include? " stdio.h "
    #include?
    " stdlib.h " ? /* 內(nèi)存分配*/
    #include? " ctype.h " ? /* 字符操作*/
    #define?MAXNUM? 100 ? /* 非遞歸時的棧的大小*/


    ???數(shù)據(jù)結(jié)構(gòu):

    typedef?struct?node {
    ????
    int ?data;
    ????struct?node?
    * left;
    ????struct?node?
    * right;
    }
    ?Node;

    ???生成一棵二叉排序數(shù):???
    Node?*CreateTree()
    {
    ????
    int?p,data;
    ????
    char?buffer[100],ch;
    ????Node?
    *head;
    ????head
    =NULL;????/*This?is?very?important!*/
    ????
    while((ch=getchar())!=EOF){
    ????????p
    =0;
    ????????
    if(isspace(ch))?/*過濾空格*/
    ????????????
    continue;
    ????????
    else?if(isdigit(ch)){
    ????????????buffer[p
    ++]=ch;
    ????????????
    for(ch=getchar();isdigit(ch);ch=getchar())
    ????????????????buffer[p
    ++]=ch;
    ????????????ungetc(ch,stdin);
    ????????????buffer[p]
    ='\0';
    ????????????data
    =atoi(buffer);?/*將字符串轉(zhuǎn)化為整數(shù)*/
    ????????}

    ????????InsertNode(
    &head,data);/*向樹中插入一個結(jié)點*/
    ????}

    ????
    return?head;
    }


    void?InsertNode(Node?**head,int?data)
    {
    ????
    if(*head==NULL){?/*如果結(jié)點為空,正是要插入的位置*/
    ????????
    *head=(Node?*)malloc(sizeof(Node));
    ????????(
    *head)->data=data;
    ????????(
    *head)->left=NULL;
    ????????(
    *head)->right=NULL;
    ????}

    ????
    else{
    ????????
    if(data<(*head)->data)?InsertNode(&((*head)->left),data);/*插入左子樹*/
    ????????
    else?InsertNode(&((*head)->right),data);/*插入右子樹*/
    ????}

    }

    ???二叉排序數(shù)的遞歸中序遍歷:
    void?MidTravel(Node?*head)
    {
    ????
    if(head){
    ????????MidTravel(head
    ->left);?/*遍歷左子樹*/
    ????????printf(
    "%d\t",head->data);?/*輸出結(jié)點值*/
    ????????MidTravel(head
    ->right);?/*遍歷又子樹*/
    ????}

    }

    ???二叉排序數(shù)的非遞歸遍歷:
    void?MidTravel2(Node?*p)
    {
    ????Node?
    *a[MAXNUM];?/**/
    ????
    int?top;?/*棧頂*/
    ????top
    =0;
    ????
    while(p?||?top){
    ????????
    while(p){
    ????????????
    if(top==MAXNUM)?{
    ????????????????printf(
    "over?flow\n");
    ????????????????exit(
    -1);
    ????????????}

    ????????????a[top
    ++]=p;?/*入棧*/
    ????????????p
    =p->left;?/*遍歷左子樹*/
    ????????}

    ????????
    if(top){
    ????????????p
    =a[--top];?/*出棧*/
    ????????????printf(
    "%d\t",p->data);?/*輸出結(jié)點值*/
    ????????????p
    =p->right;?/*遍歷右子樹*/?
    ????????}

    ????}

    }

    posted on 2006-09-27 14:33 ChenGen 閱讀(1668) 評論(2)  編輯  收藏 所屬分類: 數(shù)據(jù)結(jié)構(gòu)復習

    評論

    # re: 復習二叉排序樹  回復  更多評論   

    又有沙發(fā)座了
    2006-09-27 11:05 | 壞男孩1

    # re: 復習二叉排序樹  回復  更多評論   

    呵呵,支持下!
    2006-09-28 08:37 | 冰川
    主站蜘蛛池模板: 亚洲久本草在线中文字幕| 亚洲人成人77777网站不卡| 最好免费观看高清在线 | 亚洲综合网美国十次| 在线观看av永久免费| 国产成人精品免费视频大全| 亚洲国产精品高清久久久| 亚洲AV日韩AV一区二区三曲| 久久综合亚洲色HEZYO国产| 亚洲国产精品免费在线观看| 亚洲av乱码中文一区二区三区| 国产亚洲精品美女久久久| 免费a级毛片无码a∨免费软件| 亚洲国产成人综合| 亚洲视频在线一区二区| 亚洲一区免费在线观看| 午夜在线免费视频 | 久久夜色精品国产噜噜亚洲a| 免费看片在线观看| a一级爱做片免费| 亚洲五月综合缴情婷婷| 亚洲日韩aⅴ在线视频| 免费看大黄高清网站视频在线| a级毛片免费播放| 精品国产亚洲第一区二区三区| 哒哒哒免费视频观看在线www| 91精品手机国产免费| 免费一级特黄特色大片| 亚洲六月丁香婷婷综合| 午夜亚洲国产理论秋霞| 亚洲婷婷国产精品电影人久久| 国产免费看JIZZ视频| 国产成人一区二区三区视频免费| 久久亚洲精精品中文字幕| 日本亚洲免费无线码| 99视频在线观看免费| 黄色毛片视频免费| 亚洲熟妇无码一区二区三区导航| 亚洲人成网www| 亚洲AV无码专区电影在线观看| 男人的天堂亚洲一区二区三区 |