資源描述:
《數(shù)據(jù)結(jié)構(gòu)大題目.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、一、算法閱讀題1.如圖所示,利用同一循環(huán)向量空間實(shí)現(xiàn)兩個(gè)隊(duì)列,其類型Queue2定義如下:typedefstruct{DataTypedata[MaxSize];intfront[2],length[2];};Queue2對(duì)于i=0或1,front[i]和length[i]分別為第i個(gè)隊(duì)列的頭指針和長(zhǎng)度域。請(qǐng)?jiān)诳杖碧幪钊牒线m的內(nèi)容,實(shí)現(xiàn)第i個(gè)循環(huán)隊(duì)列的入隊(duì)操作。intEnQueue(Queue2*Q,inti,DataTypex){//若第i個(gè)隊(duì)列不滿,則元素x入隊(duì)列,并返回1,否則返回0if(i<
2、0
3、
4、i>1)return0;if((1))return0;Q->data[(2)]=x;Q->length[(3)]++return1;}2.閱讀下列函數(shù)algo,并回答問題。(1)假設(shè)整型數(shù)組A[1..8]中的元素依次為(3,8,9,1,7,4,2,6)。執(zhí)行函數(shù)調(diào)用algo(A,8)時(shí),外層while的循環(huán)體執(zhí)行多少次?函數(shù)的返回值是多少?(2)簡(jiǎn)述函數(shù)algo(L,n)的功能。intalgo(intL[],intn){inti=0,j,s=1,t=n;while(i!=(n+1)/2){in
5、tx=L[s];i=s;j=t;while(i=x)j--;L[i]=L[j];while(i6、etemp;i=1;do{exchang=false;for(j=n;j>(1);j--)if(R[j]7、f(p→adjvex==j){G→adjlist[i].firstedge=p→next;free(p);}else{while(p→next→adjvex!=j&&p→next)____(1);if(p→next!=NULL){q=p→next;___(2)___;free(q);}}p=G→adjlist[j].firstedge;if(p→adjvex==i){G→adlist[j].firstedge=p→next;free(q);}else{while(p→next→adjvex!=i&&
8、p→next)__(3);if(p→next!=NULL){q=p→next;(4);free(q);}}}5.閱讀下列函數(shù)algo,并回答問題:(1)假設(shè)隊(duì)列q中的元素為(2,4,5,7,8),其中“2”為隊(duì)頭元素。寫出執(zhí)行函數(shù)調(diào)用algo(&q)后的隊(duì)列q;(2)簡(jiǎn)述算法algo的功能。voidalgo(Queue*Q){StackS;InitStack(&S);while(!QueueEmpty(Q))Push(&S,;DeQueue(Q));while(!StackEmpty(&S))EnQ
9、ueue(Q,Pop(&S));}6.閱讀下列函數(shù)F,并回答問題:(1)已知如圖所示的二叉樹以二叉鏈表作存儲(chǔ)結(jié)構(gòu),rt為指向根結(jié)點(diǎn)的指針。寫出執(zhí)行函數(shù)調(diào)用F(rt)的輸出結(jié)果。(2)說明函數(shù)F的功能。voidF(BinTreeT){StackS;if(T){InitStack(&S);Push(&S,NULL);while(T){printf("%c",T->data);if(T->rchild)Push(&S,T->rchild);if(T->lchild)T=T->lchild;elseT=Po
10、p(&S);}}}7.以下函數(shù)中h是帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表的頭指針(1)說明程序的功能;(2)當(dāng)鏈表中結(jié)點(diǎn)數(shù)分另為1和6(不包括頭結(jié)點(diǎn)時(shí)),請(qǐng)寫出程序中while循環(huán)體的次數(shù)。intf(DlistNode*h){DlistNode*p,*q;intj=1;p=h->next;q=h->piror;while(p!=q&&p->piror!=q)if(p->data==q->data){p=p->next;q=q->prior;}elsej=0;returnj;}8.(