久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

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

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

班級:380911班

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

實驗報告

一,實驗?zāi)康模?/p>

·掌握二叉樹的鏈式存儲結(jié)構(gòu); ·掌握構(gòu)造二叉樹的方法;

·加深對二叉樹的中序遍歷的理解; 二,實驗方法:

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

·通過鏈式存儲建立一顆二叉樹。

·設(shè)計一個算法實現(xià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;} 五,實驗過程:

·輸出:Input the date;

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

·輸出:Now InorderTraverse:【3】【2】【4】【1】【6】【5】【7】;六,上機實驗體會:

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

·通過上機練習(xí),充分理解了鏈式建立二叉樹的算法;

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

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

Linux 文件目錄樹的遍歷

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

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

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

4. 深度優(yōu)先遍歷目錄樹采用遞歸實現(xiàn)易編碼(參見如下代碼),廣度優(yōu)先遍歷則需借助隊列實現(xiàn)。當目錄下的文件數(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, “.”)|| // 考慮當前目錄和上級目錄,否則會死循環(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ù)中的目錄項并與目標進行匹配獲得文件的inode號,假設(shè)文件的平均長度為10byte,加上inode、type及reclen等信息,每個目錄項的平均長度為16byte,假設(shè)采用4K的數(shù)據(jù)塊,則一個塊可以存放256個目錄項,按照ext2文件數(shù)據(jù)索引的方式,當目錄下文件數(shù)n少于256*12時,則在目錄下查找文件最多需要訪問n/256(向上取整)個數(shù)據(jù)塊,當目錄下文件數(shù)更多的時候,需要訪問的塊數(shù)會更快的增加(后面得到存儲數(shù)據(jù)的物理塊號需要多級索引),這也是在目錄下不應(yīng)放太多文件的原因,如果將擁有很多文件的目錄均分成多個子目錄,多一級目錄會多一次(或多次,具體依賴于子目錄下文件數(shù)量)磁盤塊訪問,但在子目錄中查找文件的磁盤訪問開銷會小很多。

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

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

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

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

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

第五篇:已打印中央電大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)用的實參,傳遞給形參的是(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語言目標文件連接而成的可執(zhí)行文件的缺省擴展名為(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.帶有隨機函數(shù)調(diào)用的表達式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ù)型 B.實數(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.程序運行中需要從鍵盤上輸入多于一個數(shù)據(jù)時,各數(shù)據(jù)之間默認使用(D)符號作為分隔符。A.空格或逗號 B.逗號或回車 C.逗號或分號 D.空格或回車 22.邏輯表達式(x>0 && x<=10)的相反表達式為(A)。

A.x<=0 || x>10 B.x<=0 && x>10 C.x<=0 || x<=10 D.x>0 && x>10 23.當處理特定問題時的循環(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賦值的正確表達式為(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.當不需要函數(shù)返回任何值時,則應(yīng)使用void 標識符來定義函數(shù)類型。4.十進制數(shù)25表示成符合C語言規(guī)則的十六進制數(shù)為0x19

5.假定不允許使用邏輯非操作符,則邏輯表達式a>b|| b==5的相反表達式為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ù)組的列下標的取值范圍在_____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)鍵字表示十進制常數(shù)3.26f的類型為___ float _____。17.假定y=10,則表達式++y*3的值為____ 33____。

18.邏輯表達式(x==0&& y>5)的相反表達式為_(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.用于輸出表達式值的標準輸出函數(shù)的函數(shù)名是___printf_____。

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

31.假定不允許使用邏輯非操作符,則關(guān)系表達式x+y>5的相反表達式為___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í)行表達式*(p++)后,p所指對象的值為____46____。38.假定p是一個指向整數(shù)對象的指針,則用___&p _____表示指針變量p的地址。39.與結(jié)構(gòu)成員訪問表達式p->name等價的訪問表達式為_____(*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)變量、累乘變量和累加變量的標識符。

#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
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


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

相關(guān)范文推薦

主站蜘蛛池模板: 神马影院午夜dy888| 亚洲色无码播放| 少妇真人直播免费视频| 性一交一乱一色一视频| 欧美熟妇丰满肥白大屁股免费视频| 国产精品538一区二区在线| 国产又色又爽又黄刺激在线视频| 久久精品国产99久久6动漫| 人妻少妇乱子伦精品无码专区电影| 成人免费无码视频在线网站| 久久久精品2019免费观看| 成 人 黄 色 免费 网站无毒| 亚洲高清中文字幕在线看不卡| 狠狠色婷婷久久一区二区三区| 精品女同一区二区免费播放| 国产精品人妻一区二区三区四| 手机看片久久国产免费| 亚洲色欲色欲www在线丝| 拍摄av现场失控高潮数次| 国产精品香蕉视频在线| 狠狠色噜噜狠狠狠狠米奇777| 亚洲中文字幕无码一区无广告| 永久免费精品精品永久-夜色| 国产办公室秘书无码精品99| 丰满少妇被猛烈进入| 精品亚洲aⅴ在线无码播放| 国产精品99久久99久久久动漫| 国产午夜亚洲精品区| 国产成人高清亚洲明星一区| 国产蝌蚪视频在线观看| 色噜噜狠狠狠综合曰曰曰| 狠狠五月深爱婷婷网| 亚洲精品无码高潮喷水在线| 亚洲老熟女av一区二区在线播放| 被窝影院午夜无码国产| 欧美不卡视频一区发布| 国产成人艳妇aa视频在线| 成人国产精品一区二区网站公司| 久久综合狠狠综合久久| 精品久久人人爽天天玩人人妻| 精品国产乱码久久久久久小说|