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