間接定址的基本及其應用 實驗2 4

2021-08-09 05:48:10 字數 2782 閱讀 9377

一.實驗目的 

鞏固間接定址的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題。

二. 實驗內容 

建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入、刪除、查詢等操作。用間接定址來實現,分別輸出結果。

#include #includeusing namespace std;  

const int maxsize = 10;

struct student //定義student結構體

; ostream& operator << (ostream& os, const student &ob) //過載左移運算子,使其能直接輸出自定義型別「student」

template class addresslist

;

template void addresslist::printlist()

template datatype addresslist::get(int index)

template int addresslist::locate(string x)

return -1;

}

template void addresslist::insert(datatype x, int index)

table[index] = new student; // 新建乙個間接位址

*table[index] = x;

table[index]->sum = table[index]->chinese + table[index]->math + table[index]->english; //對sum賦值

length++;

}

template addresslist::addresslist(datatype a, int n)

} template datatype addresslist::delete(int index)

length--;

return x;

}

template addresslist ::~addresslist()

delete table;

} int main()

stu[i].name = tempname;

cout << "請輸入第" << i + 1 << "名學生語文成績:";

cin >> stu[i].chinese;

cout << "請輸入第" << i + 1 << "名學生數學成績:";

cin >> stu[i].math;

cout << "請輸入第" << i + 1 << "名學生英語成績:";

cin >> stu[i].english;

stu[i].sum = stu[i].chinese + stu[i].math + stu[i].english;

cout << "-------------------------------------" << endl;

} addresslistdemo(stu, num);

demo.printlist();

cout << "鍊錶總長為:";

cout << demo.length() << endl;

cout << "-------------------------------------" << endl;

cout << "查詢第三名學生成績:" << endl;

cout << "-------------------------------------" << endl;

cout << "姓名" << "\t" << "語文" << "\t" << "數學" << "\t" << "英語" << "\t" << "總分" << "\t" << endl;

cout << demo.get(3) << endl;

cout << "-------------------------------------" << endl;

cout << "查詢姓名為「小明」的位置:" << demo.locate("小明") << endl;

cout << "-------------------------------------" << endl;

cout << "鍊錶總長為:";

cout << demo.length() << endl;

cout << "-------------------------------------" << endl;

cout << "刪除第3位同學的成績:" << demo.delete(3).name << endl;

demo.printlist();

return 0;

}

輸入

三、實驗心得

做了前幾個鍊錶和順序表的實驗後,寫間接定址的模板比前面輕鬆了許多,我個人感覺就是前兩個的模板結合在一起,有好也有不好,好處是在按位查詢時省力很多,壞處是犧牲了插入和刪除這兩個小功能的效能,**也相對複雜。 

間接定址的基本及其應用 實驗2 4

一 實驗目的 鞏固間接定址的資料結構的儲存方法和相關操作,學會針對具體應用,使用線性表的相關知識來解決具體問題。二.實驗內容 建立乙個由n個學生成績的順序表,n的大小由自己確定,每乙個學生的成績資訊由自己確定,實現資料的對錶進行插入 刪除 查詢等操作。用間接定址來實現,分別輸出結果。為了以後的對 的...

間接定址儲存的線性表 基本操作實現

目的 通過實際操作間接定址儲存的單鏈表,掌握間接定址儲存單鏈表的儲存結構以及驗證其操作的實現並進一步理解演算法與程式的關係。內容 建立間接定址儲存的單鏈表並對已建立的單鏈表實現插入 刪除 查詢等基本操作。間接定址j簡介 將陣列和指標結合起來的一種方法,它將陣列中儲存資料元素的的單元改為儲存指向改元素...

實驗三 順序棧的基本操作實現及其應用

1 熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。2 學會使用棧和佇列解決實際問題。二 實驗內容 棧的壓棧和出棧操作。三 include using namespace std const int stacksize 20 陣列長度為20 templateclass seqs...