當前位置:編程學習大全網 - 源碼下載 - 隊列服務源代碼

隊列服務源代碼

Queue每次進入壹個節點並存儲在隊列中,然後進入它的左子節點,它的左子節點也會加入隊列。我們取的時候要先取節點左邊的子節點。

LZ壹定要用隊列,但絕對不是正確的選擇!

隊列如下所示:

# include & ltiostream & gt

使用命名空間std

typedef結構位節點

{

char數據;

struct bitnode *lchild,* rchild

}*bitree,樹;

int number = 0;

void create bitree(bitree & amp;t)

{

char c;

int i=0,r=0,f = 0;//r,f分別指向隊伍的頭和尾。

bitree p=NULL,temp=NULL,pre=NULL,s[100];

s[0]= NULL;

int lflag[100]= { 0 };

int rflag[100]= { 0 };

Printf("請輸入根節點:");

t =新樹;

t->;l child = t-& gt;rchild = NULL

scanf("%c ",& ampt->;數據);

temp = pre = t-& gt;lchild

s[++ I]= t;

f = I;

p = t;

而(f!=r)

{

如果(p->;lchild = = NULL & amp& amplflag[i]==0)

{

Printf("請輸入%c的左子元素:",p-& gt;數據);

fflush(stdin);

scanf("%c ",& ampc);

如果(c!='#')

{

p->;lchild =新樹;

p = p-& gt;lchild

p->;l child = p-& gt;rchild = NULL

p->;數據= c;

s[++ f]= p;

I = f;

lflag[I]= rflag[I]= 0;

}

其他

lflag[I]= 1;

}

else if(p-& gt;rchild = = NULL & amp& amprflag[i]==0)

{

Printf("請輸入%c的正確子級:",p-& gt;數據);

fflush(stdin);

scanf("%c ",& ampc);

如果(c!='#')

{

p->;rchild =新樹;

p = p-& gt;rchild

p->;l child = p-& gt;rchild = NULL

p->;數據= c;

s[++ f]= p;

I = f;

lflag[I]= rflag[I]= 0;

}

其他

{

rflag[I]= 1;

p = s[++ r];

I = r;

}

}

其他

{

p = s[++ r];

I = r;

}

}

}

空預訂單(二叉樹& ampT)//遍歷二叉樹,輸出函數。

{

如果(t!=0)

{

cout & lt& ltt->;數據& lt& lt",";

預先訂購(t->;l child);

預先訂購(t->;rchild);

}

}

void main()

{

bitree t;

t = 0;

create bitree(t);

cout & lt& lt“前序值的值為:“;

前序(t);

}這裏強烈建議LZ使用stack,這樣更符合樹的輸入層次:

# include & ltiostream & gt

使用命名空間std

typedef結構位節點

{

char數據;

struct bitnode *lchild,* rchild

}*bitree,樹;

int number = 0;

void create bitree(bitree & amp;t)

{

char c;

int I = 0;

bitree p=NULL,temp=NULL,pre=NULL,s[100];

s[0]= NULL;

int lflag[100]= { 0 };

int rflag[100]= { 0 };

Printf("請輸入根節點:");

t =新樹;

t->;l child = t-& gt;rchild = NULL

scanf("%c ",& ampt->;數據);

temp = pre = t-& gt;lchild

s[++ I]= t;

p = t;

while(s[i]!=空)

{

如果(p->;lchild = = NULL & amp& amplflag[i]==0)

{

Printf("請輸入%c的左子元素:",p-& gt;數據);

fflush(stdin);

scanf("%c ",& ampc);

如果(c!='#')

{

p->;lchild =新樹;

p = p-& gt;lchild

p->;l child = p-& gt;rchild = NULL

p->;數據= c;

s[++ I]= p;

lflag[I]= rflag[I]= 0;

}

其他

lflag[I]= 1;

}

else if(p-& gt;rchild = = NULL & amp& amprflag[i]==0)

{

Printf("請輸入%c的正確子級:",p-& gt;數據);

fflush(stdin);

scanf("%c ",& ampc);

如果(c!='#')

{

p->;rchild =新樹;

p = p-& gt;rchild

p->;l child = p-& gt;rchild = NULL

p->;數據= c;

s[++ I]= p;

lflag[I]= rflag[I]= 0;

}

其他

{

rflag[I]= 1;

p = s[-I];

}

}

其他

p = s[-I];

}

}

空預訂單(二叉樹& ampT)//遍歷二叉樹,輸出函數。

{

如果(t!=0)

{

cout & lt& ltt->;數據& lt& lt",";

預先訂購(t->;l child);

預先訂購(t->;rchild);

}

}

void main()

{

bitree t;

t = 0;

create bitree(t);

cout & lt& lt“前序值的值為:“;

前序(t);

}不知道怎麽問!妳的問題往往是我想學習的地方!

  • 上一篇:淘寶的當前交易狀態是買家已付款但是賣家沒發貨訂單多久會關閉
  • 下一篇:智能家居市場面臨選擇:是封閉的小米還是開放的
  • copyright 2024編程學習大全網