1單選(2分)線性表是( )。
a.乙個有限序列,可以為空
b.乙個有限序列,不可以為空
c.乙個無限序列,可以為空
d.乙個無限序列,不可以為空
正確答案:a
解析: a、線性表是具有n(n≥0)個資料元素的有限序列。
課本考據:線性表是具有相同特徵的資料元素的乙個有限序列。當 n=0時,表示線性表是乙個空表,即不包含任何元素。
課本考據:插入資料元素,在l的第i(1<=i<=n+1)個位置插入乙個新的元素e,l的長度增一。
3單選(2分)順序表具有隨機訪問特性,指的是( )。
a.查詢值為x的元素與順序表中元素個數n無關
b.查詢值為x的元素與順序表中元素個數n有關
c.查詢序號為i的元素與順序表中元素個數n無關
d.查詢序號為i的元素與順序表中元素個數n有關
正確答案:c
解析: c、一種儲存結構具有隨機訪問特性指的是,對於給定的序號i,在o(1)時間內找到對應元素值。
課本考據:順序表示線性表的直接對映,可從求線性表中的某個資料元素的值的演算法得知
=>
乙個沒有迴圈(或者有迴圈,但迴圈的次數與問題規模 n無關)的演算法中原操作執行次數與問題規模無關,記作o(1),也成為常數階。
bool getelem
(sqlist * l,
int i, elemtype &e)
4單選(2分)在順序表中刪除乙個元素所需要的時間( )。
a.與刪除元素的位置及順序表的長度都有關
b.只與刪除元素的位置有關
c.與刪除任何其他元素所需要的時間相等
d.只與順序表的長度有關
正確答案:a
解析: a、當從順序表中刪除元素時,為了保持順序表的邏輯特性,需要移動元素以覆蓋該刪除的元素。因此在順序表中刪除乙個元素與該元素的位置及順序表的長度都有關。
課本考據:元素移動的次數與表長n=l->length和刪除元素的位置i有關,共有n個元素可被刪除。
5單選(2分)在n(n>1)個運算的順序表中,演算法時間複雜度為o(1)的運算是( )。
a.訪問第i個元素(2≤i≤n)並求其前驅元素
b.在第i個元素之後插入乙個新元素
c.刪除第i個元素
d.將這n個元素遞增排序
正確答案:a
解析: a、訪問第i個元素(2≤i≤n)即l->data[i-1]和求其前驅元素l->data[i-2]的時間複雜度均為o(1)。
課本考據:元素移動的次數不僅與表長n=l->length有關,而且與插入、刪除的位置i有關,平均時間複雜度為o(n)。
6單選(2分)關於線性表的順序儲存結構和鏈式儲存結構的描述中,正確的是( )。
ⅰ.線性表的順序儲存結構優於鏈式儲存結構
ⅱ.順序儲存結構比鏈式儲存結構的儲存密度高
ⅲ.如需要頻繁插入和刪除元素,最好採用順序儲存結構
ⅳ.如需要頻繁插入和刪除元素,最好採用鏈式儲存結構
a.ⅰ、ⅱ、ⅲ
b.ⅱ、ⅳ
c.ⅱ、ⅲ
d.ⅲ、ⅳ
正確答案:b
解析: b、線性表的順序儲存結構和鏈式儲存結構各有優缺點,不能簡單比較好壞,所以ⅰ錯誤。鏈式儲存結構使用指標表示邏輯關係,所以儲存密度比較低,所以ⅱ正確。如頻繁使用插入和刪除操作,鏈式儲存結構更優於順序儲存結構,所以ⅲ錯誤,ⅳ正確。
7單選(2分)在單鏈表中,增加乙個頭節點的目的是為了( )。
a.使單鏈表至少有乙個節點
b.標識鍊錶中某個重要節點的位置
c.方便插入和刪除運算的實現
d.表示單鏈表是線性表的鏈式儲存結構
正確答案:c
解析: c、在單鏈表中增加乙個頭節點的主要目的是使刪除和插入節點操作更簡單,方便運算的實現。
8單選(2分)通過含有n(n≥1)個元素的陣列a,採用頭插法建立乙個單鏈表l,則l中節點值的次序( )。
a.與陣列a的元素次序相同
b.與陣列a的元素次序相反
c.與陣列a的元素次序無關
d.以上都不對
正確答案:b
解析: b、採用頭插法建立單鏈表時,後面的節點插入到最前端,所以l的節點值次序與陣列a的元素次序相反。
9單選(2分)某演算法在含有n(n≥1)個節點的單鏈表中查詢值為x節點,其時間複雜度是( )。
a.o(log2n)
b.o(1)
c.o(n2)
d.o(n)
正確答案:d
解析: d、需要從首節點出發逐一查詢每個節點。
課本考據:按元素值查詢的演算法在單鏈表l中從頭開始找第乙個值域與e相等的結點,若存在這樣的結點,則返回邏輯序號,否則返回0;
int
locateelem
(linknode * elemtype)
if(p==
null
)return(0
);else
return
(i);
}
10單選(2分)在長度為n(n≥1)的單鏈表中刪除尾節點的時間複雜度為( )。
a.o(1)
b.o(log2n)
c.o(n)
d.o(n2)
正確答案:c
解析: c、在長度為n(n≥1)的單鏈表中刪除尾節點時,需要找倒數第2個節點,此時時間複雜度為o(n)。
課本考據l:刪除資料元素的實現過程是先在單鏈表l中找到第i-1個結點,由p指向它。若存在這樣的結點,且也存在後繼結點(也由p指向它),則刪除q所指的結點,返回true;否則返回false,表示引數i錯誤。
bool listdelete
(linknode *
& l,
int i,elemtype & e)
if(p==
null
) ruturn false;
else
}
11單選(2分)關於線性表的正確說法是( )。
a.每個元素都有乙個前驅和乙個後繼元素
b.線性表中至少有乙個元素
c.表中元素的排序順序必須是由小到大或由大到小
d.除第乙個元素和最後乙個元素外,其餘每個元素有且僅有乙個前驅和乙個後繼元素
正確答案:d
解析: d、線性表屬典型的線性結構。
12單選(2分)以下關於順序表的敘述中,正確的是( )。
a.順序表可以利用一維陣列表示,因此順序表與一維陣列在結構上是一致的,它們可以通用
b.在順序表中,邏輯上相鄰的元素在物理位置上不一定相鄰
c.順序表和一維陣列一樣,都可以進行隨機訪問
d.在順序表中每乙個元素的型別不必相同
正確答案:c
解析: c、順序表中所有元素必須連續存放,而一維陣列中所有元素可以不連續存放,另外,一維陣列只有按下標的存、取兩個操作,而順序表可以進行線性表的插入、刪除等操作,所以選項a錯誤。在順序表中,邏輯上相鄰的元素在物理位置上也一定相鄰,所以選項b錯誤。順序表中每乙個元素的型別必須相同,所以選項d錯誤。
13單選(2分)以下屬於順序表的優點是( )。
a.插入元素方便
b.刪除元素方便
c.儲存密度大
d.以上都不對
正確答案:c
解析: c、順序表的儲存密度為1,所以其儲存密度大。
14單選(2分)設線性表中有n個元素,以下運算中,( )在單鏈表上實現要比在順序表上實現效率更高。
a.刪除指定位置元素的後乙個元素
b.在尾元素的後面插入乙個新元素
c.順序輸出前k個元素
d.交換第i個元素和第n-i+1個元素的值(i=1,2,…,n)
正確答案:a
解析: a、在順序表中插入元素和刪除元素時需要移動較多元素,而在單鏈表上執行同樣的操作不需要移動元素,只需修改相關節點的指標域。
15單選(2分)以下關於單鏈表的敘述中正確的是( )。
ⅰ.節點除自身資訊外還包括指標域,儲存密度小於順序表
ⅱ.找第i個節點的時間為o(1)
ⅲ.在插入、刪除運算時不必移動節點
a.僅ⅰ、ⅱ
b.僅ⅱ、ⅲ
c.僅ⅰ、ⅲ
d.ⅰ、ⅱ、ⅲ
正確答案:c
解析: c、單鏈表不具有隨機訪問特性,即不能在o(1)的時間內找到第i個節點。
課本考據:在鍊錶中,邏輯上相鄰的元素對應的儲存位置是通過指標來連線的,因而每個結點的儲存位置可以任意安排,不必要求相鄰,所以當進行插入或刪除操作時只需要修改相關結點的指標域即可。(方便省時)
武漢大學資料結構MOOC第5周測驗
1單選 2分 下面關於串的敘述中,正確的是 a.串是一種特殊的線性表 b.串中元素只能是字母 c.空串就是空白串 d.串的長度必須大於零 正確答案 a 解析 a 串是一種特殊的線性表,其元素為單個字元,長度可以為0。課本考據 1 字串簡稱為串,串是由字元元素構成的,其中元素的邏輯關係也是一種線性關係...
MOOC資料結構 第8周測驗
1.樹最適合用來表示 a a.元素之間具有層次關係的資料 b.元素之間無聯絡的資料 c.有序資料元素 d.無序資料元素 2.現有一 遺傳 關係,設x是y的父親,則x可以把他的屬性遺傳給y。表示該遺傳關係最適合的資料結構為 b a.圖b.樹 c.線性表 d.陣列 3.一棵節點個數為n 高度為h的m m...
MOOC 資料結構 第一周
1 有以下用c c 語言描述的演算法,說明其功能 void fun double y,double x,int n 解 計算x的n次方。2 乙個演算法的空間複雜度是o 1 那麼執行該演算法時不需要任何空間,這個說法正確嗎?為什麼?解 錯誤。若乙個演算法的空間複雜度為o 1 則稱此演算法為原地工作或就...