




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE1《數據結構》實驗報告實驗名稱:順序表的操作專業:計算機科學與技術班級:本1103學號:201108111122姓名:秦文杰提交日期:2012.10.8
一、實驗目的
熟練掌握線性表的類型定義方法、順序存儲方法及其基本運算(元素的插入、刪除等)的實現方法,培養綜合運用所學知識,根據具體問題進行數據結構設計和算法設計的能力。
二、實驗要求
1.在問題分析的基礎上選擇順序存儲結構,進行算法設計,編制程序并上機調試成功。
2.按要求完成實驗報告
3.保存和打印出程序的運行結果,并結合程序進行分析。
三、實驗內容 設計實現一個順序表操作的綜合應用程序。要求:實現順序表的構造、插入、刪除、顯示以及查找功能。(基本要求)四、實驗設計及測試結果數據結構typedefstruct{int*elem;intlength;intlistsize;}SqList;函數調用層次結構main函數main函數Createlist函數listinsert函數listdelete函數printlist函數調用調用調用調用調用調用locateelem函數調用調用圖1函數調用層次結構圖1函數調用層次結構函數功能說明Createlist函數:創建一個順序表;Printlist函數:輸出順序表;listinsert函數:在順序表的第i個元素之前插入一個元素;listdelete函數:在順序表中刪除第i個元素;locatelem函數:在順序表中查找與e等值的元素;4.測試結果與分析上述程序在VisualC++6.0環境下加以實現。經過多次測試,程序運行正確。運行結果如圖2所示。圖2運行結果圖2運行結果收獲與體會通過這次課程設計:我進一步鞏固了C語言的基礎,尤其是編寫C語言的結構及算法轉化程序的方法。做實驗達到了理論與實踐結合的目的,提高了自己的編程能力,程序由算法和數據結構組成,一個好的程序不僅算法重要,數據結構的設計也很重要。程序不夠簡潔,還有待改進,功能還有待更完善,下一步需要改進程序為菜單形式!源程序#include<iostream.h>#include<malloc.h>//如需要用到其它頭文件請加入。#defineMAXNUM100#defineINCREMENT10typedefstruct{int*elem;intlength;intlistsize;}SqList;voidCreatList(SqList&l)//建立一個順序表,數據元素為整數,數據由鍵盤隨機輸入。{intn;cout<<"請輸入數據的個數:";cin>>n;l.elem=(int*)malloc(MAXNUM*sizeof(int));for(inti=0;i<n;i++){cout<<"第"<<i+1<<"個元素為:";cin>>l.elem[i];l.length=n;l.listsize=MAXNUM;}}voidPrintList(SqList&l){ cout<<"順序為表:";for(inti=0;i<l.length;i++)cout<<l.elem[i]<<"";cout<<endl;}voidListInsert(SqList&l,intj,intx){int*newbase;int*q,*p;cout<<"請輸入要插入的位置:";cin>>j;if(j<1||j>l.length+1)cout<<"j不合法!"<<endl;else{cout<<"要插入的元素是:";cin>>x;cout<<"在第"<<j<<"個元素前插入:"<<x<<endl;if(l.length>=l.listsize){ newbase=(int*)realloc(l.elem,(l.listsize+INCREMENT)*sizeof(int));l.elem=newbase;l.listsize+=INCREMENT;}q=&(l.elem[j-1]);for(p=&(l.elem[l.length-1]);p>=q;--p)*(p+1)=*p;*q=x;++l.length;}}voidlistlocate(SqList&l){inte,j=1;int*p;p=l.elem;cout<<"請輸入要查找的元素";cin>>e;while(i<l.length&&*p!=0)(p++;++i;)if(i<=l.length)cout<<"要查找的元素在第"<<i<<"個位置";elsecout<<"未查到";}voidListDelete(SqList&l,intj){int*p,*q;intx;cout<<"請輸入要刪除的位置:";cin>>j;if(j<1||j>l.length)cout<<"j不合法!"<<endl;else{p=&(l.elem[j-1]);q=l.elem+l.length-1;for(++p;p<=q;++p)*(p-1)=*p;--l.length;x=l.elem[j-2];cout<<"要刪除第"<<j<<"個元素:"<<x<<endl;}}voidmain(){SqListl;intj=0;intx=0;cout<<"創建順序表"<<e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件設計師考試的常見問題與試題及答案解答
- 軟件設計師考試復習日程安排試題及答案
- 深化西方國家對外交政策的書寫與評價試題及答案
- 2025年多式聯運信息平臺在物流行業協同創新中的應用與發展報告
- 敏捷項目管理的2025年試題及答案
- 2025年工業互聯網平臺同態加密技術與網絡安全風險評估融合前景報告
- 2025年城市更新視角下歷史文化街區保護與旅游開發策略研究報告
- 機電工程電機原理基礎試題及答案
- 機電工程溝通與協調技巧試題及答案
- 2025網絡文學出海戰略規劃:跨文化傳播與市場拓展策略研究
- 高考專題復習:辨析歧義句的常見方法
- 幼兒園課件:中班科學鳥兒之最精美
- 2021年京東物流詳細報告ppt
- 口腔影像學名詞解釋
- 水電站運維管理
- 高填方路基施工危險源辨識及風險評價
- 小學語文教學研究(有答案)-國家開放大學2022年1月(2020秋)期末考試復習資料、試題及答案
- 描述性分析與不平等的度量方法(1)
- 微積分基本公式
- 國科大葉齊祥機器學習期末考試
- 高新區孵化器亮化工程投標文件商務標格式
評論
0/150
提交評論