資料結構 線性表和連線表實驗

2021-12-29 19:39:13 字數 2932 閱讀 2155

實驗 4 報告

學號: 15331281 院系專業: 資料科學與計算機學院

完成日期: 2016 年 10 月 13 日

實驗題目: 線性表

實驗內容: 1.線性表在順序儲存結構上的插入、刪除運算; 2.線性表在鏈結儲存結構上的插入、刪除運算;

實驗要求: 1.編寫用順序儲存的線性表進行建立、插入和刪除的演算法函式; 2.編寫帶表頭的對單鏈表進行建立、插入和刪除的演算法函式; 3.編寫主函式(使用字元選單形式),使得可以做建立、插入或刪除選擇; 4.請用『c』、『o』 、『m』、 『p』、 『u』、『t』、 『e』、 『r』為資料除錯、執行程式,並寫出 相應的輸出結果和溢位測試

實驗步驟: 1.編寫用順序儲存的線性表類 slist:私有成員:乙個陣列 data, 乙個整型 size。公有成 員:插入函式,刪除函式,列印函式,返回大小的函式 2. 編寫帶表頭的對單鏈錶類 clist:私有成員:頭指標 head, 乙個整型 size。公有成員: 插入函式,刪除函式,列印函式,返回大小的函式 3.插入均為位置若大於 size,插在最後,其他合法插入則插入在 pos 前 4.編寫 main 函式,主要為 test 函式,test 函式字元選單選擇順序表或者鏈結表,然後 根據選擇呼叫函式 l,函式 l 需要乙個引數區分兩種表,並且提供字元選單選擇插入操 作,在頭部插入,在尾部插入,刪除,在頭部刪除,在尾部刪除,列印列表退回主選單 (test 函式)等操作。

實驗結果: 略

**:main:

#include "sequentiallist.hpp"

#include "chainlist.hpp"

#include

#include

#include

using namespace std;

void test();

void l(char s);

int main()

void test()

}}void l(char s) else if (o == "if") else

cout << endl << "please input the insert element : ";

cin >> e;

cout << endl;

if (s == 's') flag = sl.insert(pos, e);

else if (s == 'c') flag = cl.insert(pos, e);

if (flag) cout << "insert successfull." << endl;

else cout << "insert fail." << endl;

} else if (o == "e" || o == "ef" || o == "eb")

else if (o == "ef")

else

cout << endl;

if (s == 's') flag = sl.erase(pos);

else if (s == 'c') flag = cl.erase(pos);

if (flag) cout << "erase successfull." << endl;

else cout << "erase fail." << endl;

} else if (o == "d")

else if (s == 'c')

cout << endl;

} else if (o == "q")

}}sequentiallist.hpp

#ifndef sequential_list_hpp

#define sequential_list_hpp

//線性表在順序儲存結構

#define maxsize 3

typedef char elementtype;

class slist ;

#endifsequentiallist.cpp

#include "sequentiallist.hpp"

#include

using std::cout;

slist::slist()

slist::~slist() {}

bool slist::insert(int pos, elementtype e) else

size++;

return true;

}bool slist::erase(int pos)

void slist::display()

int slist::getsize()chainlist.hpp

#ifndef chain_list_hpp

#define chain_list_hpp

#include

//線性表在連線儲存結構

typedef char elementtype;

struct node

};class clist ;

#endifchainlist.cpp

#include "chainlist.hpp"

#include

clist::clist()

clist::~clist()

}bool clist::insert(int pos, elementtype e) else

node* next = pre->next;

pre->next = new node(e, next);

}size++;

return true;

}bool clist::erase(int pos)

node *tmp = pre->next;

pre->next = pre->next->next;

delete tmp;

size--;

return true;

}void clist::display()

}int clist::getsize()

資料結構 線性表和連線表實驗

實驗 4 報告 學號 15331281 院系專業 資料科學與計算機學院 完成日期 2016 年 10 月 13 日 實驗題目 線性表 實驗內容 1.線性表在順序儲存結構上的插入 刪除運算 2.線性表在鏈結儲存結構上的插入 刪除運算 實驗要求 1.編寫用順序儲存的線性表進行建立 插入和刪除的演算法函式...

《資料結構》 實驗 線性表實驗

一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗時間 準備時間為第2周到第4周,具體集中實驗時間為第4週第2次課。2個學時。三 實驗...

資料結構實驗1 線性表 鍊錶

線性表的順序儲存與鍊錶儲存,實現資料插入 刪除運算。將1中儲存結構改為迴圈鍊錶 雙向鍊錶 迴圈雙向鍊錶等,實現資料插入 刪除。線性表 include include include define ok 1 define error 0 define overflow 0 define list in...