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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

二叉樹非遞歸遍歷,重構(gòu)

2019-11-08 02:22:56
字體:
供稿:網(wǎng)友
//非遞歸前序遍歷
typedef struct btnode{    char data;    struct btnode *lchild;    struct btnode *rchild;}btnode;typedef struct seqstack{    btnode *stack_p[SIZE]; //store pointers of stack    int tag[SIZE];      //為了非遞歸后續(xù)遍歷使用    int top;            //top of stack}seqstack;void push(seqstack *s,btnode *t){    if(s->top == SIZE){        PRintf("the stack is full/n");    }    else{        (s->top)++;        s->stack_p[s->top] = t;    }}btnode* pop(seqstack *s){    if(s->top==-1){        return NULL;    }    else{        (s->top)--;        return s->stack_p[(s->top)+1];    }}
void preorder1(btnode *t){    seqstack s;    s.top = -1;    if(!t){        cout << "the tree is empty" <<endl;    }    else    {        while((s.top != -1) || (t) ){                while(t){     //棧不為空這入棧并打印,直到葉子節(jié)點                printf("%c/n",t->data);                push(&s,t);                t = t->lchild;            }                     t = pop(&s);  //回溯到上一個根節(jié)點            t = t->rchild;        }    }}

二叉樹重構(gòu)

主要是通過前序遍歷和中序遍歷的特點,前序首先讀取根節(jié)點,然后再中序中找到根節(jié)點的位置,將根的左右子樹分開求解。遞歸。因為兩種遍歷順序,每種在根旁邊有左右子樹。故用4個vector存儲4個subtree。遍歷結(jié)束標(biāo)志是到葉子節(jié)點,此時其分支數(shù)目為0。
btnode *reConstructBintree(vector<int> pre,vector<int> vin){//the length of preint length = pre.size();cout << length <<endl;if(length == 0)    return NULL;//    return new btnode(pre[0]);//define 4 vector to store left subtree and right subtreevector<int> l_pre,r_pre,l_vin,r_vin;btnode *head = new btnode(pre[0]);int gen=0;for(int i = 0; i < length; i++){    if(pre[0] == vin[i]){        gen = i;        break;    }}for(int i = 0; i < gen; i++){    l_pre.push_back(pre[i+1]);    l_vin.push_back(vin[i]);}for(int i=gen+1; i<length; i++){    r_pre.push_back(pre[i]);    r_vin.push_back(vin[i]);}head->lchild = reConstructBintree(l_pre,l_vin);head->rchild = reConstructBintree(r_pre,r_vin);return head;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 海淀区| 阿坝县| 宁夏| 宁波市| 尤溪县| 印江| 乌审旗| 清河县| 岳池县| 平泉县| 辰溪县| 胶州市| 阿拉尔市| 安新县| 山阴县| 怀远县| 万荣县| 田东县| 调兵山市| 南昌县| 永吉县| 泽普县| 翁牛特旗| 望谟县| 辽宁省| 武冈市| 平潭县| 鲁甸县| 武宣县| 阳信县| 来凤县| 乐业县| 修武县| 景东| 丰原市| 广河县| 林芝县| 中宁县| 鹰潭市| 威宁| 苗栗县|