資料結構實驗報告(一)
實驗一 線性表的基本操作實現及其應用
1、熟練掌握線性表的結構特點,掌握順序表的基本操作。
2、鞏固 c++相關的程式設計方法與技術。
3、學會使用順序表解決實際問題。
建立 n 個元素的順序表(n 的大小和表裡資料自己確定),實現相關的操作:輸出,插 入,刪除,查詢等功能。編寫完整程式實現,程式語言不限定,使用技術形式不定。
設定線性表的資料元素為int型,線性表最多有10個元素。定義順序表的資料型別——順序錶類,包括插入、刪除、查詢、遍歷等基本操作。
查詢操作:
1.從第一位開始依次查詢與x值相同的元素;
2.找到即輸出下標為i的元素的序號i+1;
插入操作:
1.如果表滿了,則丟擲上溢異常;
2.如果元素的插入位置不合理,則丟擲位置異常;
3.將最後乙個元素直至第i個元素分別向後移動乙個位置;
4.將元素x填入位置i處;
5.表長加1。
刪除操作:
1.如果表空,則丟擲下溢異常;
2.如果刪除位置不合理,則丟擲刪除位置異常;
3.取出被刪除元素;
4.將下標為i,i+1,…,n-1處的元素分別移到下標i-1,i,…,n-2處;
5.表長減1,返回被刪除值。
seqlist.h
const int maxsize = 100;
template
class seqlist
seqlist(datatype a, int n);
~seqlist(){}
int length()
datatype get(int i);
int locate(datatype x);
void insert(int i, datatype x);
datatype delete(int i);
void printlist();
private:
datatype data[maxsize];
int length; };
template
seqlist::seqlist(datatype a, int n)
template
datatype seqlist::get(int i)
} template
int seqlist::locate(datatype x)
template
void seqlist::insert(int i, datatype x)
template
datatype seqlist::delete(int i)
template
void seqlist::printlist()
list.cpp
#include
#include"seqlist.h"
using namespace std;
void main()
;seqlistl(list, 5);
l.printlist();
l.insert(3, 3);
l.printlist();
cout << l.locate(3) << endl;
l.delete(2);
l.printlist();
}
執行結果如圖:
實驗一作業
1.問題 舉乙個例項,畫出採用prim演算法構造最小生成樹的過程,並按實驗報告模板編寫演算法。舉乙個例項,畫出採用kruskal演算法構造最小生成樹的過程,並按實驗報告模板編寫演算法。2.解析 1 prim演算法 首先從圖g中任意乙個頂點開始。假設這個頂點叫a。將a加入乙個群。然後比較群外所有與這個...
一 PTA實驗作業
本週要求挑選3道題目寫設計思路,除錯過程。設計思路用偽 描述。題目選做要求 順序表選擇一題 6 2,6 3,7 1選一題 單鏈表選擇一題 6 1不能選 有序表選擇一題 6 3 jmu ds 順序表刪除重複元素 6 2 jmu ds 單鏈表逆置 7 1 兩個有序鍊錶序列的合併 二.設計思路 偽 或流程...
實驗作業 鎖屏應用一
一 實驗 部分 meactivity import android.os.bundle import android.os.handler import android.os.message import android.annotation.suppresslint import android....