顺序表实验2
?
?
?
?
?
?
?
?
《數據結構》
實驗報告
?
?
題目:_順序表的實現
學號:___________
姓名:___________
?
?
?
?
?
?
東南大學計算機系
?
?
?
實驗題目
一、??? 實驗目的
1.??? 掌握順序表的基本操作,實現順序表的插入、刪除、查找等基本運算。二、??? 實驗內容
1.?????????????????????? 完善順序表的定義,并運用其實現線性表的操作。 2.?????????????????????? (課上任務)???? 選題一:集合的交、并、差運算
【問題描述】
????? ??編制一個能演示執行集合的交、并和差運算的程序。
【任務要求】
1) 集合元素用小寫英文字母,執行各種操作應以對話方式執行。
2) 算法要點:利用順序表表示集合;理解好三種運算的含義
【測試數據】
自行設定,注意邊界等特殊情況。選題二:文章編輯
功能:輸入一頁文字,程序可以統計出文字、數字、空格的個數。
靜態存儲一頁文章,每行最多不超過80個字符,共N行;要求①分別統計出其中英文字母數和空格數及整篇文章總字數;②統計某一字符串在文章中出現的次數,并輸出該次數;③刪除某一子串,并將后面的字符前移。
存儲結構使用順序表,分別用幾個子函數實現相應的功能;
輸入數據的形式和范圍:可以輸入大寫、小寫的英文字母、任何數字及標點符號。
輸出形式:①分行輸出用戶輸入的各行字符;②分4行輸出"全部字母數"、"數字個數"、"空格個數"、"文章總字數";③輸出刪除某一字符串后的文章;選題三:構造有序順序表
要求:進一步完善SqList類模板,實現順序表的按值插入元素,即順序表為遞增有序表,插入元素后仍遞增有序。
方法:在sq_list.h中添加代碼,在SqList類模板的定義中添加函數聲明,在類模板實現部分實現該函數。
bool? CreateListOrder(); bool? InsertOrder(ElemType e);?
三、??? 實驗步驟
1.啟動VC6.0:開始菜單→程序→Microsoft Visual Studio 6.0 →Microsoft Visual C++ 6.0 2.建立工程:文件(File)→新建(new)→在彈出的對話框中選擇工程標簽(Project)→選中選項:Win32 Console Application(不能選別的)→輸入工程名(Project Name)→選擇工程的存放位置(Location)→單擊“確定”按鈕(OK)→在彈出的對話框中選中選項:An Empty Project→單擊“完成”按鈕(Finish)→在彈出的對話框中單擊“確定”按鈕( OK )。 3.創建頭文件:文件(File)→新建(new)→在彈出的對話框中選擇文件標簽(Files) →選中選項:C/C++ Header File→輸入頭文件名(此處定義為“sq_list.h”)→單擊“確定”按鈕(OK)。 sq_list.h內容如下: #ifndef __SQ_LIST_H__ #define __SQ_LIST_H__ // 順序表類模板 template <class ElemType> class SqList { protected: // 順序表實現的數據成員: ??????? int count;???????????????? // 元素個數 ??????? int maxSize;????????????? // 順序表最大元素個數 ??????? ElemType *elems;????????? // 元素存儲空間 public: // 順序表的方法聲明: ???? SqList(int size); // 初始化線性表 ???? virtual ~SqList()??? // 銷毀線性表 ???? bool CreateList(); //構建順序表 ???? void Clear();???????????? // 將線性表清空 ???? int Length() ;??? // 求線性表長度??????????????? ???? bool Empty() ;??? // 判斷線性表是否為空 ???? bool Full() ;???? // 判斷線性表是否已滿 ???? bool SetElem(int position, ElemType e);// 設置指定位置的元素值 ???? bool GetElem(int position, ElemType &e) ;??? // 求指定位置的元素 int Locate (ElemType? e); //元素定位 ?????bool Insert(int position,? ElemType e);// 插入元素 ?????bool Delete(int position, ElemType &e);// 刪除元素???? void Traverse() ;?????????????????????? // 遍歷線性表 }; // 順序表類模板的實現部分由學生自己完成 …… 5. 創建源程序文件main.cpp:文件(File)→新建(new)→在彈出的對話框中選擇文件標簽(Files) →選中選項:C++ Source File→輸入源程序文件名(main)→單擊“確定”按鈕(OK)。 main.cpp文件內容可參考下述代碼: #include "sq_list.h"?? // 順序表類 void main(void) { ??? int size=0; cout<<”請輸入順序表最大長度:”; cin>>size; ??? SqList<int> sl(size); ? ??char c = '0'; ??? while (c != '13') { ????? ??cout << endl << "1. 輸入線性表,創建順序表"; ??????? cout << endl << "2. 求線性表長度"; ??????? cout << endl << "3. 判斷線性表是否為空"; ??????? cout << endl << "4. 判斷線性表是否已滿"; ??????? cout << endl << "5. 修改線性表某元素值"; ??????? cout << endl << "6. 求線性表某位置元素值"; ??????? cout << endl << "7. 在線性表中查找元素"; ??????? cout << endl << "8. 在線性表中插入元素"; ??????? cout << endl << "9. 在線性表中刪除元素"; ??????? cout << endl << "10. 遍歷線性表"; ??????? cout << endl << "11. 清空線性表"; ??????? cout << endl << "12. 銷毀線性表"; ??????? cout << endl << "13. 退出"; ??????? cout << endl << "選擇功能(1~13):";??? cin >> c; ??????? switch (c) e ??????? { ??????????? case '1':sl.CreateList(); break; ???????????? case '2': ???????????? case '3': ??????? ................//剩余部分學生自己完成 ???????? } ??????? } } ??????????????????????????????????????????????????? 注意:1.在編程過程中注意及時保存編寫內容。 ????? 2.對順序表的各種操作在運行結果中體現出來。四、??? 實驗結果
轉載于:https://www.cnblogs.com/jzl123/p/6509176.html
總結
- 上一篇: 跨服务器连接数据库
- 下一篇: ORACLE 外部表的简单使用