《資料結構》程式填空複習題

2021-03-28 18:56:43 字數 2413 閱讀 8876

說明:本文件中涉及到的演算法並非本書的全部,有些可根據此處的情況自行看書和作業題,黑色為綜合練習上的題目,紅色為我另增加的題,這些空的選擇是根據我個人的經驗來決定的並不能完全代表**電大的出卷老師,因此一定不能有肯定就考這些題目的想法。不能放棄其他內容的複習,切記!!!

一、線性表

1.設線性表為(6,10,16,4),以下程式用說明結構變數的方法建立單向鍊錶,並輸出鍊錶中各結點中的資料。

#define null 0

void main( )

while( (5

}答案:

(1)&a

(2)dnext=null

(3)p->data

(4)p=p->next

(5)p!=null

2. 以下函式在head為頭指標的具有頭結點的單向鍊錶中刪除第i個結點,

struct node

;typedef struct node node

int delete(node *head,int i )

if(q==null)

return(0);

p= ___(3

___(4)_____=p->next;

free(___(5)_____);

return(1);

}答案:

(1)j(2)q=q->next

(3)q->next

(4)q->next

(5)p

3.將新元素插入到線性表中的第i位,max是陣列的個數,a[0]用以存放線性表長度,b存放待插入的元素值,i存放插入的位置,n存放線性表長度

答案:(1)j>=i

(2)a[j+1]=a[j]

(3)a[i]=b

(4)a[0]=n+1

4.用頭插法建立帶頭結點且有n個結點的單向鍊錶的演算法

node *create(n)

}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. 以下函式為鏈棧的進棧操作,x是要進棧的結點的資料域,top為棧頂指標

struct node

;struct node *top ;

void push(elemtype x)

struct node *p;

p=(struct node*)malloc(___(1)_____);

p->data=x

2 }

答案:(1)sizeof (struct node)

(2)p->next=top

(3)top=p

二、 佇列

1. 以下函式為鏈佇列的入隊操作,x為要入隊的結點的資料域的值,front、rear分別是鏈佇列的隊頭、隊尾指標

struct node

;struct node *front,*rear;

void inqueue(elemtype x)

struct node *p;

p= (struct node*) ___(1

p->data=x

p->next=null

2rear= ___(3

}答案:(1)malloc(sizeof (struct node))

(2)rear->next=p

(3)p

2. 以下函式為鏈佇列的出隊操作(鏈佇列帶有頭結點),出隊結點的資料域的值由x返回,front、rear分別是鏈佇列的隊頭、隊尾指標

struct node

;struct node *front,*rear;

elemtype outqueue()

}答案:

(1)printf(「%c」,bt->data)

(2)preorder(bt->left)

(3)preorder(bt->right)

2. 以下程式是中序遍歷二叉樹的遞迴演算法的程式,完成程式中空格部分(樹結構中左、右指標域分別為left和right,資料域data為字元型,bt指向根結點)。

void inorder (struct btreenode *bt)

}答案:

(1)inorder(bt->left)

(2)printf(「%c」,bt->data)

(3)inorder(bt->right)

3 以下程式是後序遍歷二叉樹的遞迴演算法的程式,完成程式中空格部分(樹結構中左、右指標域分別為left和right,資料域data為字元型,bt指向根結點)。

void postorder (struct btreenode *bt)

{ if(bt!=null){

(1 (2(3

資料結構複習題

1.資料結構可用三元式表示 d,s,p 其中 d是資料物件,s是d上的關係,p是對d的基本操作集。f 2 簡單地說,資料結構是帶有結構的資料元素的集合。t 3 判斷帶頭結點的非空迴圈單鏈表 頭指標為l 中指標p所指結點是最後乙個元素結點的條件是 p next l。t 4 線性表的鏈式儲存結構具有可直...

資料結構複習題

資料結構複習題 2004年6月 一 單項選擇題 1 鏈棧和順序棧相比,有乙個較明顯的優點是 a.通常不會出現棧滿的情況 b.通常不會出現棧空的情況 c.插入操作更加方便c.刪除操作更加方便 2 若待排序物件序列在排序前已按其排序碼遞增順序排序,則採用 方法比較次數最少。a 直接插入排序b 分劃交換排...

資料結構複習題

1 如果以鍊錶作為棧的儲存結構,則退棧操作時 a.必須判別棧是否滿 b.對棧不作任何判別 c.必須判別棧是否空 d.判別棧元素的型別 2 設陣列data 0.m 作為迴圈佇列sq的儲存空間,front為隊頭指標,rear為隊尾指標,則執行出隊操作的語句為 a.front front 1 b.fron...