国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 湘潭县| 西丰县| 南川市| 台山市| 定结县| 阳高县| 久治县| 乐陵市| 油尖旺区| 崇阳县| 温泉县| 宝清县| 莒南县| 德州市| 馆陶县| 麻城市| 沈丘县| 郧西县| 正蓝旗| 宜君县| 冷水江市| 山东省| 藁城市| 昌黎县| 宜州市| 钟山县| 西平县| 宜昌市| 宁远县| 遂溪县| 沾益县| 普兰县| 克拉玛依市| 河曲县| 襄汾县| 长寿区| 柳林县| 珲春市| 揭阳市| 和田市| 麻江县|