《數(shù)據(jù)結(jié)構(gòu)》程序填空復(fù)習(xí)題(總13頁)



《《數(shù)據(jù)結(jié)構(gòu)》程序填空復(fù)習(xí)題(總13頁)》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)結(jié)構(gòu)》程序填空復(fù)習(xí)題(總13頁)(13頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、《數(shù)據(jù)結(jié)構(gòu)》程序填空復(fù)習(xí)題 說明:本文檔中涉及到的算法并非本書的全部,有些可根據(jù)此處的情況自行看書和作業(yè)題,黑色為綜合練習(xí)上的題目,紅色為我另增加的題,這些空的選擇是根據(jù)我個人的經(jīng)驗來決定的并不能完全代表中央電大的出卷老師,因此一定不能有肯定就考這些題目的想法。不能放棄其他內(nèi)容的復(fù)習(xí),切記?。?! 一、線性表 1.設(shè)線性表為(6,10,16,4),以下程序用說明結(jié)構(gòu)變量的方法建立單向鏈表,并輸出鏈表中各結(jié)點中的數(shù)據(jù)。 #define NULL 0 void main( ) {NODE a,b,c,d,*head,*p; a.data=6; b.data=10; c
2、.data=16; d.data=4; /*d是尾結(jié)點*/ head= (1) ; a.next=&b; b.next=&c; c.next=&d; (2) ; /*以上結(jié)束建表過程*/ p=head; /*p為工作指針,準(zhǔn)備輸出鏈表*/ do {printf(“%d\n”, (3) ); (4) ; }while( (5) ); } 答案: (1)&a (2)dnext=NULL (3)p->data (4)p=p->next (5)p!=N
3、ULL 2. 以下函數(shù)在head為頭指針的具有頭結(jié)點的單向鏈表中刪除第i個結(jié)點, struct node { int data; struct node *next; }; typedef struct node NODE int delete(NODE *head,int i ) { NODE *p,*q; int j; q=head; j=0; while((q!=NULL)&&( ___(1)_____)) { ___(2)_____; j++; } if(q==NULL) return(0);
4、
p= ___(3)_____;
___(4)_____=p->next;
free(___(5)_____);
return(1);
}
答案:
(1)j
5、<=n;j++) scanf(“%d”,&a[j]); a[0]=n; for(j=n; (1) ;j- -) (2) ; (3) ; (4) ; for(j=1;j<=a[0];j++) printf(“%5d\n”,a[j]); } 答案: (1)j>=i (2)a[j+1]=a[j] (3)a[i]=b (4)a[0]=n+1 4.用頭插法建立帶頭結(jié)點且有n個結(jié)點的單向鏈表的算法 NODE *create(n) { N
6、ODE *head,*p,*q; int i p=(NODE *)malloc(sizeof(NODE)); (1) ; (2) ; (3) ; for(i=1;i<=n;i++) { p=(NODE *)malloc(sizeof(NODE)); p->data=i; if(i==1) (4) ; else { (5) ; (6) ; } }
7、return(head); } 答案: (1)head=p (2)p->next=NULL (3)q=p (4)p->next=NULL (5)p->next=q->next (6)q->next=p 一、 棧 1. 以下函數(shù)為鏈棧的進棧操作,x是要進棧的結(jié)點的數(shù)據(jù)域,top為棧頂指針 struct node { ElemType data; struct node *next; }; struct node *top ; void Push(ElemType x) { struct node *p
8、; p=(struct node*)malloc(___(1)_____); p->data=x; ___(2)_____; } 答案: (1)sizeof (struct node) (2)p->next=top (3)top=p 二、 隊列 1. 以下函數(shù)為鏈隊列的入隊操作,x為要入隊的結(jié)點的數(shù)據(jù)域的值,front、rear分別是鏈隊列的隊頭、隊尾指針 struc
9、t node { ElemType data; struct node *next; }; struct node *front,*rear; void InQueue(ElemType x) { struct node *p; p= (struct node*) ___(1)_____; p->data=x; p->next=NULL;
10、 ___(2)_____; rear= ___(3)_____; } 答案: (1)malloc(sizeof (struct node)) (2)rear->next=p (3)p 2. 以下函數(shù)為鏈隊列的出隊操作(鏈隊列帶有頭結(jié)點),出隊結(jié)點的數(shù)據(jù)域的值由x返回,front、rear分別是鏈隊列的隊頭、隊尾指針 struct node { ElemType data; stru
11、ct node *next; }; struct node *front,*rear; ElemType OutQueue() { ElemType x; if(___(1)_____) { printf("隊列下溢錯誤!\n"); exit(1); } else {
12、 struct node *p=front->next; x=p->data; front->next= ___(2)_____; if(p->next==NULL) rear=front; free(p); ___(3)____
13、_; } } 答案: (1)front= =rear (2)p->next (3)return(x) 三、 樹 1.以下程序是先序遍歷二叉樹的遞歸算法的程序,完成程序中空格部分(樹結(jié)構(gòu)中左、右指針域分別為left和right,數(shù)據(jù)域data為字符型,BT指向根結(jié)點)。 void Preorder (struct BTreeNode *BT) { if(BT!=NULL){ (1) ; (2)
14、; (3) ; } } 答案: (1)printf(“%c”,BT->data) (2)Preorder(BT->left) (3)Preorder(BT->right) 2. 以下程序是中序遍歷二叉樹的遞歸算法的程序,完成程序中空格部分(樹結(jié)構(gòu)中左、右指針域分別為left和right,數(shù)據(jù)域data為字符型,BT指向根結(jié)點)。 void Inorder (struct BTreeNode *BT) { if(BT!=NULL){ (1) ; (2) ; (
15、3) ; } } 答案: (1)Inorder(BT->left) (2)printf(“%c”,BT->data) (3)Inorder(BT->right) 3 以下程序是后序遍歷二叉樹的遞歸算法的程序,完成程序中空格部分(樹結(jié)構(gòu)中左、右指針域分別為left和right,數(shù)據(jù)域data為字符型,BT指向根結(jié)點)。 void Postorder (struct BTreeNode *BT) { if(BT!=NULL){ (1) ; (2) ; (3)
16、 ; } } 答案: (1)Postorder(BT->left) (2)Postorder(BT->right) (3)printf(“%c”,BT->data); 四、 圖 五、 排序 1.以下冒泡法程序?qū)Υ娣旁赼[1],a[2],……,a[n]中的序列進行排序,完成程序中的空格部分,其中n是元素個數(shù),要求按升序排列。 void bsort (NODE a[ ], int n) { NODE temp; int i,j,flag; for(j=1; (1) ;j++);
17、{flag=0; for(i=1; (2) ;i++) if(a[i].key>a[i+1].key) {flag=1; temp=a[i]; (3) ; (4) ; } if(flag= =0)break; } } 程序中flag的功能是(5) 答案: (1)j<=n-1 (2)i<=n-j (3)a[i]=a[i+1] (4)a[i+1]=temp (5)當(dāng)某趟冒泡中沒有出現(xiàn)交換則已排好序,結(jié)束循環(huán) 2.
18、 以下函數(shù)為直接選擇排序算法,對a[1],a[2],…a[n]中的記錄進行直接選擇排序,完成程序中的空格 typedef struct { int key; …… }NODE; void selsort(NODE a[],int n) { int i,j,k; NODE temp; for(i=1;i<= ___(1)_____;i++) { k=i; for(j=i+1;j<= ___(2)_____;j++)
19、if(a[j].key
20、 (1) ;
while(j>=0&&temp.key=end)
return;
(1) ;
21、 (2) ;
mid=a[i];
while( (3) )
{
while(i
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高考政治一輪復(fù)習(xí):統(tǒng)編版選擇性必修1-3【共3冊重點知識點匯總】
- 2025年高考政治一輪復(fù)習(xí):七冊教材重點考點匯總
- 2025年高考生物一輪復(fù)習(xí):高中生物必修+選必修5冊教材重點知識點匯總
- 2025政府工作報告要點速覽發(fā)展總體要求和政策取向
- 《哪吒2》與DEEPSEEK年輕力量的崛起助力中國突破重圍
- 建設(shè)金融強國做好金融五篇大文章的指導(dǎo)意見
- 落實高質(zhì)量發(fā)展要求如期完成既定目標(biāo)任務(wù)更新理念科學(xué)統(tǒng)籌切實增強規(guī)劃執(zhí)行的系統(tǒng)性整體性協(xié)同性
- 如何成為一名暖護暖護的概念與職責(zé)
- 藥品儲存與養(yǎng)護醫(yī)療護理藥品儲存藥品養(yǎng)護藥品常識
- 手術(shù)室職業(yè)暴露與防護診療護理等過程中被患者血液體液等污染自身皮膚或黏膜導(dǎo)致的感染
- XX企業(yè)中層管理者領(lǐng)導(dǎo)力提升培訓(xùn)課程
- 醫(yī)院新員工入職培訓(xùn)醫(yī)院新員工必備主要職業(yè)意識醫(yī)院新員工必備工作觀
- 人工智能技術(shù)介紹人工智能DeepSeek人工智能的未來展望與發(fā)展
- 養(yǎng)娃要有松弛感家庭教育讓孩子在具有松弛感的家庭里慢慢成長
- 醫(yī)院新員工入職培訓(xùn)醫(yī)院新員工必備主要職業(yè)意識