實驗 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 ;
#endif
sequentiallist.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 ;
#endif
chainlist.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...