《資料結構》實驗課期末考試

2021-10-13 15:25:13 字數 1956 閱讀 5329

#**是直接從提交的答題卡上覆制的,可能格式啥有錯

#執行結果當時要求用自己的姓名就不粘過來了

題目:

1、(30分)利用自己的姓名拼音字母建立乙個單鏈表(帶頭結點),注意,如果鍊錶存在已知字母,則不能插入。輸入格式樣例:

請輸入姓名:liming

建立的單鏈表輸出為:l->i->m->n->g->^

注:(1)輸入自己姓名拼音,大寫全拼,中間無空格;

(2)如果鍊錶長度小於5(不含),則在單鏈表尾部,反覆插入單個字母a,直到鍊錶長度等於5為止。

2、在1所建立的單鏈表基礎上,採用兩種方法實現如下功能:查詢單鏈表倒數第2個元素,並輸出元素值。

(1)(30分)第一種方法(常規思路):求出單鏈表長度(length),然後通過idx = length-n+1(n為倒數字置序號),得到idx值,再從頭遍歷單鏈表,直到遍歷到idx即可。

對應實現函式void getreversevalue1(linklist l,int n,char &value)//value為返回的查詢元素值

(2)(40分)第二種方法:要求不能採用第一種方法的思路(第一種方法需採用兩次遍歷,即一次用於求單鏈表長度,另外一次用於查詢idx),且僅採用一次遍歷即可得到倒數第2個元素的值。

對應實現函式void getreversevalue2(linklist l,int n,char &value)//value為返回的查詢元素值

最終輸出樣式為(以liming為例):

第一種方法(常規思路)單鏈表倒數第2個元素值為:n

第二種方法單鏈表倒數第2個元素值為:n

原始碼:

#include

#include

using

namespace std;

typedef

struct lnode lnode,

*linklist;

//建立單鏈表

bool

initlist

(linklist& l,string n)

p->next =

null

;return

true;}

//顯示單鏈表

void

display

(linklist l)

cout <<

"^"<< endl;

}void

getreversevalue1

(linklist l,

int n,

char

& value)

//計算序號

int idx;

idx = len - n +1;

//查詢元素

p = l;

for(

int i =

0; i < idx; i++

) value = p-

>data;

}void

getreversevalue2

(linklist l,

int n,

char

& value)

//一次遍歷

while

(s !=

null

) value = p-

>data;

}int

main()

;getreversevalue1

(l,2

,value1)

; cout <<

"第一種方法(常規思路)單鏈表倒數第2個元素值為:"

<< value1 << endl;

getreversevalue2

(l,2

, value2)

; cout <<

"第二種方法單鏈表倒數第2個元素值為:"

<< value2 << endl;

return0;

}

資料結構期末考試再複習

這次是幫別人複習複習資料結構。重新看這些問題,除了圖論的那些演算法,有些東西還真的是忘記了,不過看了下書還好想起來了。1 10個元素的有序表,等概率條件下折半查詢成功的平均查詢長度是29 10。畫出判定樹,其實就是二分轉二叉樹 數量 層數累加即可。2.設有序順序表中的元素依次為 017,094,15...

程式設計課 期末考試複習 專題四 線性結構

線性資料結構有很多 一維陣列 指標 棧 佇列 還有stl裡面定義的一些資料結構等等。這些線性結構在解決一些問題方面也是很有用的。一維陣列,大家都很清楚,有固定長度,有下標,每乙個下標的位置對應乙個值 指標,也可以看成一維陣列 棧是乙個先進後出的資料結構 佇列是乙個先進先出的資料結構,等等。這一專題也...

生活感想 期末考試

期末考試成績出來了 差強人意 有所進步 但還是打不到最好的水平 小花在旁邊長吁短嘆 真受不了 我最近不想談成績 一談成績就容易惱 但是現在成績出來了 也該寫寫 現在心裡平靜了很多 總而言之 除了物理壓力很大 粗心錯了一道大題12分嗷嗷嗷要知道我和小花差了1.8分就八個人啊tut 其他的各項還好 數學...