第一章習題答案
2、××√
3、(1)包含改變量定義的最小範圍(2)資料抽象、資訊隱蔽
(3)資料物件、物件間的關係、一組處理資料的操作
(4)指標型別
(5)集合結構、線性結構、樹形結構、圖狀結構
(6)順序儲存、非順序儲存
(7)一對
一、一對多、多對多
(8)一系列的操作
(9)有限性、輸入、可行性
4、(1)a(2)c(3)c
5、語句頻度為1+(1+2)+(1+2+3)+…+(1+2+3+…+n)
第二章習題答案
1、(1)一半,插入、刪除的位置
(2)順序和鏈式,顯示,隱式
(3)一定,不一定
(4)頭指標,頭結點的指標域,其前驅的指標域
2、(1)a(2)a:e、a
b:h、l、i、e、a
c:f、m
d:l、j、a、g或j、a、g
(3)d(4)d(5)c(6)a、c
3、頭指標:指向整個鍊錶首位址的指標,標示著整個單鏈表的開始。
頭結點:為了操作方便,可以在單鏈表的第乙個結點之前附設乙個結點,該結點的資料域可以儲存一些關於線性表長度的附加資訊,也可以什麼都不存。
首元素結點:線性表中的第乙個結點成為首元素結點。
4、演算法如下:
int linser(seqlist *l,int x)
5、演算法如下:
#define ok 1
#define error 0
int ldel(seqlist *l,int i,int k)
if((i+k)==(l->last+2))
else
}6、演算法如下:
#define ok 1
#define error 0
int delet(linklist l,int mink,int maxk)
else
}9、演算法如下:
int dele(node *s)
else
else
while(p->next->next!=s)
p=p->next;
p->next=s;
free(p);
return 1;
} }
}第三章習題答案
2、(1)
3、棧有順序棧和鏈棧兩種儲存結構。
在順序棧中,棧頂指標top=-1時,棧為空;棧頂指標top=stacksize-1時,棧為滿。
在帶頭結點鏈棧中,棧頂指標top-〉 next=null,則代表棧空;只要系統有可用空間,鏈棧就不會出現溢位,既沒有棧滿。
5、#include<>
#include ""
void main( )
while(ch!='@'&&!isempty(&s))
if(!isempty(&s))
printf("no!\n");
else
}12、(1)功能:將棧中元素倒置。
(2)功能:刪除棧中的e元素。
(3)功能:將佇列中的元素倒置。
第五章習題答案
1、(1)陣列a共占用48*6=288個位元組;
(2)陣列a的最後乙個元素的位址為1282;
(3)按行儲存時loc(a36)=1000+[(3-1)*8+6-1]*6=1126
(4)按列儲存時loc(a36)=1000+[(6-1)*6+3-1]*6=1192
9、(1)(a,b)(2)((c,d))(3)(b)(4)b(5)(d)
10、d
第六章習題答案
1、三個結點的樹的形態有兩個;三個結點的二叉樹的不同形態有5個。
3、證明:分支數=n1+2n2+…+knk1)
n= n0+n1+…+nk2)
n=分支數+13)
將(1)(2)代入(3)得
n0= n2+2n3+3n4+…+(k-1)nk+1
4、注:c結點作為d的右孩子(畫圖的時候忘記了,不好意思)
5、n0=50,n2=n0-1=49,所以至少有99個結點。
6、(1)前序和後序相同:只有乙個結點的二叉樹
(2)中序和後序相同:只有左子樹的二叉樹
(3)前序和中序相同:只有右子樹的二叉樹
7、證明:∵n個結點的k叉樹共有nk個鏈域,分支數為n-1(即非空域)。
空域=nk-(n-1)=nk-n+1
8、對應的樹如下:
9、(答案不唯一)
哈夫曼樹如下圖所示:
哈夫曼編碼如下:
頻率編碼
0.07 0010
0.19 10
0.02 00000
0.06 0001
0.32 01
0.03 00001
0.21 11
0.10 0011
11、對應的二叉樹如下:
12、求下標分別為i和j的兩個桔點的最近公共祖先結點的值。
typedef int elemtype;
void ancestor(elemtype a,int n,int i,int j)
15、編寫遞迴演算法,對於二叉樹中每乙個元素值為x的結點,刪去以它為根的子樹,並釋放相應的空間。
void del_sub(bitree t)
void del_sub_x(bitree t,int x)
}22、
int width(bitree bt)
{if (bt==null) return (0);
else
{bitree p,q[50];
int front=1,rear=1,last=1;
int temp=0, maxw=0;
q[rear]=bt
while(front<=last)
資料結構C語言描述耿國華習題及答案
第一章習題答案 2 3 1 包含改變量定義的最小範圍 2 資料抽象 資訊隱蔽 3 資料物件 物件間的關係 一組處理資料的操作 4 指標型別 5 集合結構 線性結構 樹形結構 圖狀結構 6 順序儲存 非順序儲存 7 一對 一 一對多 多對多 8 一系列的操作 9 有限性 輸入 可行性 4 1 a 2 ...
資料結構 C語言描述 2章習題答案
第一章習題 2 3 1 包含改變量定義的最小範圍 2 資料抽象 資訊隱蔽 3 資料物件 物件間的關係 一組處理資料的操作 4 指標型別 5 集合結構 線性結構 樹形結構 圖狀結構 6 順序儲存 非順序儲存 7 一對 一 一對多 多對多 8 一系列的操作 9 有限性 輸入 可行性 4 1 a 2 c ...
資料結構C語言習題及解答
第二章習題與解答 一判斷題 1 線性表的邏輯順序與儲存順序總是一致的。2 順序儲存的線性表可以按序號隨機訪問。3 順序表的插入和刪除操作不需要付出很大的時間代價,因為每次操作平均只有近一半的元素需要移動。4 線性表中的元素可以是各種各樣的,但同一線性表中的資料元素具有相同的特性,因此是屬於同一資料物...