亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2880 | 回復(fù): 11
打印 上一主題 下一主題

二叉數(shù)遍歷 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2006-06-29 11:04 |只看該作者 |倒序?yàn)g覽
我定義了一個(gè)創(chuàng)建二叉數(shù)的子函數(shù)
void   CreatBiTree(BiTree1   &T){   //建立一棵二叉樹(shù)
                                                                                
  char   node;
                                                                                
  node=getchar();//輸入結(jié)點(diǎn)的值
  if(node=='#')     T=NULL;
                                                                                
  else{
  T=(BiTNode   *)malloc(sizeof(BiTNode));
                                                                                
  T->data=node;
  CreatBiTree(T->lchild);
  CreatBiTree(T->rchild);
                                                                                
  }
在linux RH下用gcc編譯時(shí),為什么會(huì)出錯(cuò),錯(cuò)誤信息是
parse error before '&' token

論壇徽章:
1
榮譽(yù)版主
日期:2011-11-23 16:44:17
2 [報(bào)告]
發(fā)表于 2006-06-29 11:10 |只看該作者
用g++

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2006-06-29 11:13 |只看該作者
是不是RH C下不能用&來(lái)引用阿

論壇徽章:
1
榮譽(yù)版主
日期:2011-11-23 16:44:17
4 [報(bào)告]
發(fā)表于 2006-06-29 11:15 |只看該作者
原帖由 huasd1109 于 2006-6-29 11:13 發(fā)表
是不是RH C下不能用&來(lái)引用阿

看你的c語(yǔ)言教材。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2006-06-29 11:24 |只看該作者
原帖由 lenovo 于 2006-6-29 11:15 發(fā)表

看你的c語(yǔ)言教材。

我覺(jué)得應(yīng)該是跟編譯器有關(guān)吧

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2006-06-29 11:28 |只看該作者
不知道是不是這樣的問(wèn)題啊
void   CreatBiTree(BiTree1   &T)//T是引用
CreatBiTree(T->lchild);//這里又成了指針

論壇徽章:
1
榮譽(yù)版主
日期:2011-11-23 16:44:17
7 [報(bào)告]
發(fā)表于 2006-06-29 11:29 |只看該作者
原帖由 huasd1109 于 2006-6-29 11:24 發(fā)表

我覺(jué)得應(yīng)該是跟編譯器有關(guān)吧

你還是看了再確定吧。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2006-06-29 11:30 |只看該作者
用個(gè)g++編譯果然通過(guò)了,
謝謝lenovo
可是我運(yùn)行a.out時(shí),怎么什么都沒(méi)有阿,光標(biāo)停在那,不動(dòng)了
代碼如下:

#include<stdio.h>
#include<stdlib.h>
                                                                                
  #define   Stack_Init_Size   100
  #define   STACKINCREMENT   10
  typedef   struct   BiTNode{   //建立二叉數(shù)節(jié)點(diǎn)的存儲(chǔ)結(jié)構(gòu),定義指向結(jié)點(diǎn)的指針
  char   data;
          struct   BiTNode   *lchild,*rchild;
  }BiTNode,*BiTree1;
                                                                                
  typedef   struct   Stack{       //定義存放指針的棧
          BiTree1   *base;
  BiTree1   *top;
  int   stacksize;
  }   Stack;
  struct   Stack   S;
                                                                                
  void   CreatBiTree(BiTree1  &T){   //建立一棵二叉樹(shù)
                                                                                
  char   node;
                                                                                
  node=getchar();//輸入結(jié)點(diǎn)的值
  if(node=='#')     T=NULL;
  else{
  T=(BiTNode   *)malloc(sizeof(BiTNode));
                                                                                
  T->data=node;
  CreatBiTree(T->lchild);
  CreatBiTree(T->rchild);
                                                                                
  }
                                                                                
                                                                                
  }//CreatBiTree
                                                                                
  void   InitStack(){     //建立一個(gè)空棧
                                                                                
            S.base=(BiTree1   *)malloc(sizeof(BiTree1)*Stack_Init_Size);
    S.top=S.base;
                                                                                
  }
                                                                                
  void   Push(BiTree1   e)   {   //將指針壓棧
                                                                                
  *S.top=e;
S.top++;
                                                                                
  }
                                                                                
  int   StackEmpty(){     //判斷棧是否為空
  if(S.base==S.top)
  return(1);
  else
  return(0);
  }
  BiTree1   GetTop(){   //察看棧頂元素
                                                                                
  return(*(S.top-1));
  }
                                                                                
  BiTree1   Pop(){     //彈出棧內(nèi)一個(gè)元素
  BiTree1   t;
  if(S.base==S.top)   {printf("空棧   ,出錯(cuò)!");exit(-1);}
                                                                                
                                                                                
          t=*(--S.top);
return(t);
                                                                                
  }
                                                                                
                                                                                
                                                                                
                                                                                
  void   InOrderTraverse(BiTNode   *T){   //中序遍歷二叉樹(shù)
      BiTNode   *p;
                                                                                
      BiTree1   e;
        p=T;
                                                                                
  InitStack();   Push(p);
  while(!StackEmpty()){     //如果棧不空
                  while((p=GetTop())   &&   p!=NULL){
                        Push(p->lchild);
        //p=p->lchild;
  }
  Pop();
  if(!(StackEmpty()))   {
  e=Pop();
  printf("%c,",e->data);
Push(e->rchild);
  }//if
  }//while
  }   //InOrderTraverse
                                                                                
  int  main(){
          BiTree1   BiTree=NULL;
                                                                                
                                                                                
                                                                                
  printf("請(qǐng)按先序遍歷建立一棵二叉樹(shù):\n");
  CreatBiTree(BiTree);
                                                                                
  printf("中序遍歷二叉樹(shù)并顯示結(jié)果為:\n");
  InOrderTraverse(BiTree);
  return 0;
  }

[ 本帖最后由 huasd1109 于 2006-6-29 12:41 編輯 ]

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2006-06-29 13:04 |只看該作者
不好意思,誤導(dǎo)你了
程序在VC下是對(duì)的
只是node=getchar();//輸入結(jié)點(diǎn)的值
  if(node=='#')     T=NULL;
好象CreatBiTree不能返回,而且這里 T=NULL;是否可以執(zhí)行是個(gè)問(wèn)題

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2006-06-29 13:08 |只看該作者
原帖由 epegasus 于 2006-6-29 13:04 發(fā)表
不好意思,誤導(dǎo)你了
程序在VC下是對(duì)的
只是node=getchar();//輸入結(jié)點(diǎn)的值
  if(node=='#')     T=NULL;
好象CreatBiTree不能返回,而且這里 T=NULL;是否可以執(zhí)行是個(gè)問(wèn)題

問(wèn)題好象就出在這里!
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP