欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      層序遍歷二叉樹(隊列),已調(diào)試,C語言

      時間:2019-05-14 23:08:27下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《層序遍歷二叉樹(隊列),已調(diào)試,C語言》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《層序遍歷二叉樹(隊列),已調(diào)試,C語言》。

      第一篇:層序遍歷二叉樹(隊列),已調(diào)試,C語言

      #include #include

      #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define OVERFLOW-2

      typedef int Status;

      typedef char TElemType;typedef struct BiTNode{

      #define MAXQSIZE 100 typedef BiTree QElemType;typedef struct{

      Status CreateBiTree(BiTree *T){

      } char ch;

      scanf(“%c”,&ch);if(ch=='#')*T=NULL;else{

      } return OK;if(!(*T=(BiTNode*)malloc(sizeof(BiTNode))))exit(OVERFLOW);(*T)->data=ch;CreateBiTree(&((*T)->lchild));CreateBiTree(&((*T)->rchild));QElemType base[MAXQSIZE];int front;int rear;TElemType data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;}SqQueue;void InitQueue(SqQueue *Q){ }

      Status EnQueue(SqQueue *Q,QElemType e){

      }

      Status DeQueue(SqQueue *Q,QElemType *e){

      }

      Status QueueEmpty(SqQueue Q){

      }

      void Traverse(BiTree T){ SqQueue Q;BiTree p;p=T;

      InitQueue(&Q);if(p)EnQueue(&Q,p);while(!QueueEmpty(Q)){ if(Q.rear==Q.front)return TRUE;return FALSE;else if(Q->front==Q->rear)return ERROR;*e=Q->base[Q->front];Q->front=(Q->front+1)%MAXQSIZE;return OK;if((Q->rear+1)%MAXQSIZE==Q->front)return ERROR;Q->base[Q->rear]=e;Q->rear=(Q->rear+1)%MAXQSIZE;return OK;Q->front=Q->rear=0;

      }

      {

      }

      } DeQueue(&Q,&p);printf(“%c”,p->data);if(p->lchild)EnQueue(&Q,p->lchild);if(p->rchild)EnQueue(&Q,p->rchild);printf(“n”);

      void main()BiTree T1;CreateBiTree(&T1);Traverse(T1);

      第二篇:數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告——中序遍歷二叉樹

      班級:380911班

      學(xué)號:57000211 姓名:徐敏

      實(shí)驗(yàn)報告

      一,實(shí)驗(yàn)?zāi)康模?/p>

      ·掌握二叉樹的鏈?zhǔn)酱鎯Y(jié)構(gòu); ·掌握構(gòu)造二叉樹的方法;

      ·加深對二叉樹的中序遍歷的理解; 二,實(shí)驗(yàn)方法:

      ·用遞歸調(diào)用算法中序遍歷二叉樹。三,實(shí)驗(yàn)步驟:

      ·通過鏈?zhǔn)酱鎯⒁活w二叉樹。

      ·設(shè)計一個算法實(shí)現(xiàn)中序遍歷二叉樹。四,具體實(shí)驗(yàn)步驟:

      #include #include #define LEFT 0 #define RIGHT 1 #define TRUE 1 #define FALSE 0

      typedef struct _BTNODE{ char c;struct _BTNODE *lchild;struct _BTNODE *rchild;}BTNODE,*PBTNODE;

      void PrintBTree(PBTNODE p,int depth);void ConstructBTree(PBTNODE p);void InorderTraverse(PBTNODE p);

      void main(){ PBTNODE p;p=(PBTNODE)calloc(1,sizeof(BTNODE));printf(“Input the data:”);ConstructBTree(p);PrintBTree(p,0);printf(“Now InorderTraverse:”);InorderTraverse(p);printf(“nPress any key to continue...”);getchar();}

      void PrintBTree(PBTNODE p,int depth){

      班級:380911班

      學(xué)號:57000211 姓名:徐敏

      int i;if(p==NULL){

      return;}else{ for(i=0;i

      printf(“--”);} printf(“>”);

      printf(“%cn”,p->c);

      PrintBTree(p->lchild,depth+1);

      PrintBTree(p->rchild,depth+1);} }

      void ConstructBTree(PBTNODE p){ int side;char c;side=LEFT;while(TRUE){

      scanf(“%c”,&c);

      if(c=='n'){

      //printf(“EOFn”);

      return;

      } // printf(“%dn”,c);

      switch(c){

      case '|':

      break;

      case')':

      return;

      case',':

      side=RIGHT;

      break;

      case'(':

      if(side==LEFT){

      if(p->lchild==NULL){

      p->lchild=(PBTNODE)calloc(1,sizeof(BTNODE));

      }

      ConstructBTree(p->lchild);

      }else{

      if(p->rchild==NULL){

      p->rchild=(PBTNODE)calloc(1,sizeof(BTNODE));

      }

      班級:380911班

      學(xué)號:57000211 姓名:徐敏

      ConstructBTree(p->rchild);

      }

      break;

      default:

      if(side==LEFT){

      p->lchild=(PBTNODE)calloc(1,sizeof(BTNODE));

      p->lchild->c=c;

      }else{

      p->rchild=(PBTNODE)calloc(1,sizeof(BTNODE));

      p->rchild->c=c;

      }

      } } }

      void InorderTraverse(PBTNODE p){ if(p==NULL){

      return;}else{

      InorderTraverse(p->lchild);

      printf(“[%c] ”,p->c);

      InorderTraverse(p->rchild);} return;} 五,實(shí)驗(yàn)過程:

      ·輸出:Input the date;

      ·輸入:1(2(3,4),5(6,7));

      ·輸出:Now InorderTraverse:【3】【2】【4】【1】【6】【5】【7】;六,上機(jī)實(shí)驗(yàn)體會:

      ·體會到熟練掌握各種程序算法的重要性;

      ·通過上機(jī)練習(xí),充分理解了鏈?zhǔn)浇⒍鏄涞乃惴ǎ?/p>

      ·形象的了解二叉樹的結(jié)構(gòu),能夠熟練的進(jìn)行先序,中序,后序遍歷二叉樹。

      第三篇:黑馬程序員C語言教程:Linux 文件目錄樹的遍歷

      Linux 文件目錄樹的遍歷

      1. linux提供opendir、readdir(readdir_r)、closedir和scandir等接口實(shí)現(xiàn)對目錄的讀??;

      2. readdir返回指向下一個目錄項的指針,如果要自己傳入緩沖區(qū)存儲目錄項,應(yīng)使用readdir_r代替。readdir的結(jié)果中包含當(dāng)前目錄和上一級目錄的目錄項信息。

      3. 在遍歷過程中,進(jìn)程的工作目錄不會改變,在遞歸遍歷的時候,需要改變工作目錄(chdir)以識別相對路徑,或者每次都限定全局路徑。

      4. 深度優(yōu)先遍歷目錄樹采用遞歸實(shí)現(xiàn)易編碼(參見如下代碼),廣度優(yōu)先遍歷則需借助隊列實(shí)現(xiàn)。當(dāng)目錄下的文件數(shù)量較少時,采用廣度優(yōu)先遍歷效率會更高,因目錄下的目錄項基本都是連續(xù)存放,減少了很多磁盤尋道;而采用深度優(yōu)先遍歷,結(jié)果的聚合性更高

      1.int dir_traverse(const char *dir_name)2.{

      3.DIR *dirp = opendir(dir_name);4.if(!dirp){

      5.perror(“opendir”);6.return-1;7.} 8.9.struct stat st;10.struct dirent *dir;11.char fullpath[FILENM_MAX];

      12.while((dir = readdir(dirp))!= NULL){

      13.if(!strcmp(dir->d_name, “.”)|| // 考慮當(dāng)前目錄和上級目錄,否則會死循環(huán) 14.!strcmp(dir->d_name, “..”)){ 15.continue;16.}

      17.18.sprintf(fullpath, “%s/%s”, dir_name, dir->d_name);//獲取全局路徑 19.printf(“%sn”, fullpath);// 打印路徑 20.if(lstat(fullpath, &st)< 0){ 21.perror(“l(fā)stat”);22.continue;23.}

      24.if(S_ISDIR(st.st_mode)){

      25.dir_traverse(fullpath);// 遞歸遍歷子目錄 26.} 27.28.} 29.30.closedir(dirp);31.32.return 0;33.}

      訪問目錄下某個文件時,需要逐個讀取目錄數(shù)據(jù)中的目錄項并與目標(biāo)進(jìn)行匹配獲得文件的inode號,假設(shè)文件的平均長度為10byte,加上inode、type及reclen等信息,每個目錄項的平均長度為16byte,假設(shè)采用4K的數(shù)據(jù)塊,則一個塊可以存放256個目錄項,按照ext2文件數(shù)據(jù)索引的方式,當(dāng)目錄下文件數(shù)n少于256*12時,則在目錄下查找文件最多需要訪問n/256(向上取整)個數(shù)據(jù)塊,當(dāng)目錄下文件數(shù)更多的時候,需要訪問的塊數(shù)會更快的增加(后面得到存儲數(shù)據(jù)的物理塊號需要多級索引),這也是在目錄下不應(yīng)放太多文件的原因,如果將擁有很多文件的目錄均分成多個子目錄,多一級目錄會多一次(或多次,具體依賴于子目錄下文件數(shù)量)磁盤塊訪問,但在子目錄中查找文件的磁盤訪問開銷會小很多。

      第四篇:《c語言程序設(shè)計新視角》第十章 程序調(diào)試及測試小結(jié)

      《c語言程序設(shè)計新視角》第十章 程序調(diào)試及測試 小結(jié) 調(diào)試前測試樣例設(shè)計要費(fèi)思忖,輸入是什么輸出有哪些,事前要確認(rèn),正常、異常、邊界情形要想周全,認(rèn)真仔細(xì)達(dá)到要求才能完善致臻。

      編譯時有錯不要郁悶,看提示分析語法錯在哪仔細(xì)辨認(rèn),一個錯會引起連鎖錯,改錯應(yīng)該逐步來多改幾輪。

      看運(yùn)行結(jié)果與設(shè)想是否矛盾,兩廂不符則要把設(shè)計的邏輯詢問。

      調(diào)試時設(shè)斷點(diǎn)、單步跟、查變量、看內(nèi)存,勤思考細(xì)分析找出bug直至結(jié)果確認(rèn)。

      第五篇:已打印中央電大C語言考試題庫(c語言小題+編程)(范文)

      C語言程序設(shè)計課程期末復(fù)習(xí)練習(xí)

      一、單選題

      1.在每個C語言程序中都必須包含有這樣一個函數(shù),該函數(shù)的函數(shù)名為(A)。A.main B.MAIN C.name D.function 2.每個C語言程序文件的編譯錯誤分為(B)類。A.1 B.2 C.3 D.4 3.字符串“a+b=12n”的長度為(B)。A.6 B.7 C.8 D.9 4.在switch語句的每個case塊中,假定都是以break語句結(jié)束的,則此switch語句容易被改寫為(B)語句。

      A.forB.ifC.doD.while 5.在下面的do-while循環(huán)語句中,其循環(huán)體語句被執(zhí)行的次數(shù)為(D)。int i=0;do i++;while(i<10);A.4 B.3 C.5 D.10 6.將兩個字符串連接起來組成一個字符串時,選用的函數(shù)為(C)。A.strlen()B.strcap()C.strcat()D.strcmp()7.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是(A)。A.數(shù)組的首地址 B.數(shù)組中第一個元素的值 C.數(shù)組中全部元素的值 D.數(shù)組元素的個數(shù) 8.假定a為一個整數(shù)類型的數(shù)組名,整數(shù)類型的長度為4,則元素a[4]的地址比a數(shù)組的首地址大(C)個字節(jié)。A.4 B.8 C.16 D.32 9.假定s被定義為指針類型char *的變量,初始指向的字符串為“Hello world!”,若要使變量p指向s所指向的字符串,則p應(yīng)定義為(A)。

      A.char *p=s;B.char *p=&s;C.char *p;p=*s;D.char *p;p=&s;10.從一個數(shù)據(jù)文件中讀入以換行符結(jié)束的一行字符串的函數(shù)為(B)。A.gets()B.fgets()C.getc()D.fgetc()11.由C語言目標(biāo)文件連接而成的可執(zhí)行文件的缺省擴(kuò)展名為(B)。A.cpp B.exe C.obj D.c 12.設(shè)有兩條語句為“int a=12;a+=a*a;”,則執(zhí)行結(jié)束后,a的值為(C)。A.12 B.144 C.156 D.288 13.帶有隨機(jī)函數(shù)調(diào)用的表達(dá)式rand()%20的值在(C)區(qū)間內(nèi)。A.1~19 B.1~20 C.0~19 D.0~20 14.for循環(huán)語句“for(i=0;i

      A.char a[20]=“abcdefg”;B.char a[]=“x+y=55.”;C.char a[15]={'1','2'};D.char a[10]='5';16.若有一個函數(shù)原型為“double *function()”,則它的返回值類型為(B)。A.實(shí)數(shù)型 B.實(shí)數(shù)指針型 C.函數(shù)指針型 D.數(shù)組型

      17.在C語言中,所有預(yù)處理命令都是以(B)符號開頭的。A.* B.# C.& D.@ 18.假定整數(shù)指針p所指數(shù)據(jù)單元的值為30,p+1所指數(shù)據(jù)單元的值為40,則執(zhí)行*p++后,p所指數(shù)據(jù)單元的值為(A)。

      A.40 B.30 C.70 D.10 19.若要使p指向二維整型數(shù)組a[10][20],則p的類型為(D)。A.int * B.int ** C.int *[20] D.int(*)[20] 20.表示文件結(jié)束符的符號常量為(C)A.eof B.Eof C.EOF D.feof 21.程序運(yùn)行中需要從鍵盤上輸入多于一個數(shù)據(jù)時,各數(shù)據(jù)之間默認(rèn)使用(D)符號作為分隔符。A.空格或逗號 B.逗號或回車 C.逗號或分號 D.空格或回車 22.邏輯表達(dá)式(x>0 && x<=10)的相反表達(dá)式為(A)。

      A.x<=0 || x>10 B.x<=0 && x>10 C.x<=0 || x<=10 D.x>0 && x>10 23.當(dāng)處理特定問題時的循環(huán)次數(shù)已知時,通常采用(A)循環(huán)來解決。A.forB.whileC.do-while D.switch 24.假定i的初值為0,則在循環(huán)語句“while(i

      A.intFunction(int a);B.void Function(char);C.intFunction(a);D.voidint(double* a);27.假定p是一個指向float型數(shù)據(jù)的指針,則p+1所指數(shù)據(jù)的地址比p所指數(shù)據(jù)的地址大(C)個字節(jié)。A.1 B.2 C.4 D.8 28.假定有定義為“int m=7, *p;”,則給p賦值的正確表達(dá)式為(B)。A.p=m B.p=&m C.*p=&m D.p=*m 29.假定指針變量p定義為“int *p=malloc(sizeof(int));”,要釋放p所指向的動態(tài)存儲空間,應(yīng)調(diào)用的函數(shù)為(A)。

      A.free(p)B.delete(p)C.free(*p)D.free(&p)30.C語言中的系統(tǒng)函數(shù)fopen()是(D)一個數(shù)據(jù)文件的函數(shù)。A.讀取 B.寫入 C.關(guān)閉 D.打開

      二、填空題

      1.C語言中的每條簡單語句以_;(或分號)作為結(jié)束符。2.C程序中的所有預(yù)處理命令均以___#___字符開頭。

      3.當(dāng)不需要函數(shù)返回任何值時,則應(yīng)使用void 標(biāo)識符來定義函數(shù)類型。4.十進(jìn)制數(shù)25表示成符合C語言規(guī)則的十六進(jìn)制數(shù)為0x19

      5.假定不允許使用邏輯非操作符,則邏輯表達(dá)式a>b|| b==5的相反表達(dá)式為a<=b && b!=5

      6.執(zhí)行“typedefintDataType;”語句后,在使用int定義整型變量的地方也可以使用______DataType____來定義整型變量。

      7.假定一維數(shù)組的定義為“char* a[8];”,則該數(shù)組所占存儲空間的字節(jié)數(shù)為_____32___。8.假定二維數(shù)組的定義為“double a[M][N];”,則該數(shù)組的列下標(biāo)的取值范圍在_____0~N-1____之間。9.存儲一個空字符串需要占用____1 ____個字節(jié)。

      10.strcpy函數(shù)用于把一個字符串_____拷貝(復(fù)制)___到另一個字符數(shù)組空間中。11.程序的編譯單位是一個_____程序文件_____。

      12.假定a是一個一維數(shù)組,則a[i]的指針訪問方式為___*(a+i)_____。

      13.執(zhí)行int*p=malloc(sizeof(int))操作得到的一個動態(tài)分配的整型對象為___*p_____。14.執(zhí)行“printf(“%c”,'A'+2);”語句后得到的輸出結(jié)果為___ C_____。15.shortint類型的長度為____2 ____。

      16.用類型關(guān)鍵字表示十進(jìn)制常數(shù)3.26f的類型為___ float _____。17.假定y=10,則表達(dá)式++y*3的值為____ 33____。

      18.邏輯表達(dá)式(x==0&& y>5)的相反表達(dá)式為_(x!=0 || y<=5)或:(x || y<=5)_______。19.若x=5,y=10,則x!=y的邏輯值為____1____。20.假定二維數(shù)組的定義為“int a[3][5];”,則該數(shù)組所占存儲空間的字節(jié)數(shù)為_60___。

      21.使用“typedef char BB[10][50];”語句定義___ BB_____為含有10行50列的二維字符數(shù)組類型。22.字符串“a:xxk數(shù)據(jù)”的長度為__11______。23.假定p所指對象的值為25,p+1所指對象的值為46,則*++p的值為___46 _____。24.假定一個數(shù)據(jù)對象為int*類型,則指向該對象的指針類型為___int**____。

      25.假定一個結(jié)構(gòu)類型的定義為“struct A{inta,b;A* c;};”,則該類型的長度為_____12 ___。26.假定要訪問一個結(jié)構(gòu)對象x中的數(shù)據(jù)成員a,則表示方式為_____x.a _______。27.用于輸出表達(dá)式值的標(biāo)準(zhǔn)輸出函數(shù)的函數(shù)名是___printf_____。

      28.每個C語言程序文件在編譯時可能出現(xiàn)有致命性錯誤,其對應(yīng)的標(biāo)識符為__ error ______。29.已知'A'?'Z'的ASCII碼為65?90,當(dāng)執(zhí)行“int x='C'+3;”語句后x的值為___70_____。30.表達(dá)式(int)14.6的值為_14_______。

      31.假定不允許使用邏輯非操作符,則關(guān)系表達(dá)式x+y>5的相反表達(dá)式為___x+y<=5 32.假定x=5,則執(zhí)行“a=(x?10:20);”語句后a的值為_10_______。33.假定一維數(shù)組的定義為“char* a[M];”,則該數(shù)組所占存儲空間的字節(jié)數(shù)為____4*M____。34.存儲字符串“a”需要至少占用存儲器的____2____個字節(jié)。35.strlen()函數(shù)用于計算一個字符串的___長度_____。

      36.在C語言中,一個函數(shù)由函數(shù)頭和____函數(shù)體______這兩個部分組成。37.假定p所指對象的值為25,p+1所指對象的值為46,則執(zhí)行表達(dá)式*(p++)后,p所指對象的值為____46____。38.假定p是一個指向整數(shù)對象的指針,則用___&p _____表示指針變量p的地址。39.與結(jié)構(gòu)成員訪問表達(dá)式p->name等價的訪問表達(dá)式為_____(*p).name _______。

      五、按題目要求編寫程序或函數(shù)

      1.編寫一個程序,輸出50以內(nèi)(含50)的、能夠被3或者5整除的所有整數(shù)。#include void main(){ int i;for(i=3;i<=50;i++)if(i%3==0 || i%5==0)printf(“%d ”,i);printf(“n”);} 2.編寫一個遞歸函數(shù)“int FF(int a[], int n)”,求出數(shù)組a中所有n個元素之積并返回。int FF(int a[], int n){ if(n<=0){printf(“n值非法n”),exit(1);} if(n==1)return a[n-1];else return a[n-1]*FF(a,n-1);} 3.編寫一個程序,利用while循環(huán),計算并打印輸出1?111??...?的值,其中正整數(shù)n值由鍵盤輸入。假23n定求和變量用sum表示,計數(shù)變量用i表示,sum、i和n均定義為全局變量,sum和i的初值分別被賦予0和1。

      #include intn,i=1;double sum=0;void main(){ scanf(“%d”,&n);while(i<=n)sum+=(double)1/i++;printf(“sum=%lfn”,sum);} 4.根據(jù)函數(shù)原型“void DD(int a[], int n, int MM)”編寫函數(shù)定義,利用雙重循環(huán)查找并打印輸出數(shù)組a[n]中任何兩個元素的值等于MM值的元素值。假定a[i]+a[j]等于MM,則輸出格式為:(a[i],a[j])。void DD(int a[], int n, int MM){ inti,j;for(i=0;i

      2105.編寫一個程序,計算1+3+3+...+3的值并輸出,假定分別用i,p,s作為循環(huán)變量、累乘變量和累加變量的標(biāo)識符。

      #include void main(){ int i;int p=1;int s=1;for(i=1;i<=10;i++){p*=3;s+=p;} printf(“%dn”,s);} 6.根據(jù)函數(shù)原型“int FF(int a[], int n)”,編寫函數(shù)定義,計算并返回數(shù)組a[n]中所有元素之和。int FF(int a[], int n){ inti,sum=0;for(i=0;ix1)x1=a[i];if(a[i]

      下載層序遍歷二叉樹(隊列),已調(diào)試,C語言word格式文檔
      下載層序遍歷二叉樹(隊列),已調(diào)試,C語言.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦