資源描述:
《軟件技術基礎實驗指導書.doc》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在應用文檔-天天文庫。
1、軟件技術基礎實驗指導書目錄實驗一單鏈表的運算2實驗二二叉樹的建立和遍歷5實驗三二叉排序樹的建立和查找8實驗一單鏈表的運算一、實驗目的1.掌握單鏈表的基本運算:建立、插入和刪除2.掌握運用C語言上機調(diào)試單鏈表的基本方法。二、實驗環(huán)境操作系統(tǒng)和C語言系統(tǒng)三、預習要求了解單鏈表的建立、插入和刪除算法,編寫完整的程序。四、實驗內(nèi)容設計算法,實現(xiàn)線性結構上的單鏈表的產(chǎn)生以及元素的查找、插入與刪除。具體實現(xiàn)要求:(1)從鍵盤輸入n個整數(shù),以0作為結束標記,產(chǎn)生不帶表頭的單鏈表,并輸入結點值。(2)從鍵盤輸入1個結點值,在單鏈表中查找該結點的位置。若找到,則顯
2、示“找到了”,并輸出它在鏈表中的位置;否則顯示“找不到”。(3)從鍵盤輸入2個整數(shù),一個表示欲插入的結點值x,另一個表示欲插入的數(shù)值key,將x插入到值為x的結點前,輸出單鏈表所有結點值,觀察輸出結果。(4)從鍵盤輸入1個結點值x,表示欲刪除的結點,刪除該結點,輸出單鏈表所有結點值,觀察輸出結果。五、參考算法#include#include/*單鏈表的定義*/typedefintDataType;/*DataType可以是任何相應的數(shù)據(jù)類型如int,float或char*/typedefstructnode/
3、*結點類型定義*/{DataTypedata;/*結點的數(shù)據(jù)域*/structnode*next;/*結點的指針域*/}ListNode;typedefListNode*LinkList;voidmain(){DataTypekey,x;LinkListhead,head1,head2;ListNode*s;LinkListCreateList(void);voidPrintList(LinkListhead);LinkListLocateNode(LinkListhead,DataTypekey);LinkListInsertList(Link
4、Listhead,DataTypex,DataTypekey);LinkListDeleteList(LinkListhead,DataTypex);head=CreateList();/*建立單鏈表*/PrintList(head);/*打印單鏈表*/printf("輸入要查找的值:");scanf("%d",&key);s=LocateNode(head,key);/*單鏈表查找*/printf("請輸入欲插入到哪個元素前:");scanf("%d",&x);printf("請輸入欲插入的元素:");scanf("%d",&key);head
5、1=InsertList(head,x,key);/*單鏈表插入*/PrintList(head1);/*打印單鏈表*/printf("請輸入欲刪除的結點:");scanf("%d",&x);head2=DeleteList(head1,x);/*單鏈表刪除*/PrintList(head2);/*打印單鏈表*/}/*單鏈表的建立,從前向后或從后向前生成*/LinkListCreateList(void){//在此插入必要語句}/*單鏈表的打印*/voidPrintList(LinkListhead){//在此插入必要語句}/*單鏈表的查找,輸入
6、一個結點值key,顯示該結點的位置*/LinkListLocateNode(LinkListhead,DataTypekey){//在此插入必要語句}/*單鏈表的插入,將值為key的新結點插入到不帶頭結點的單鏈表值為x的結點前*/voidInsertList(LinkListhead,DataTypex,DataTypekey){//在此插入必要語句}/*單鏈表的刪除,刪除不帶頭結點的單鏈表中值為x的結點*/intDeleteList(LinkListhead,DataTypex){//在此插入必要語句}一、思考題如果生成帶頭結點的單鏈表,程序應
7、如何修改?二、實驗報告要求具體內(nèi)容包含以下幾項:實驗題目、實驗目的、實驗環(huán)境、實驗內(nèi)容與完成情況(要求附上自主設計的源程序)、實驗中出現(xiàn)的問題、對問題的解決方案、完成思考題、實驗總結等。實驗二二叉樹的建立和遍歷一、實驗目的1.掌握二叉樹的建立算法2.掌握二叉樹的前序、中序和后序遍歷算法。二、實驗環(huán)境操作系統(tǒng)和C語言系統(tǒng)三、預習要求復習二叉樹的生成及遍歷算法,編寫完整的程序。四、實驗內(nèi)容要求采用二叉鏈表作為存儲結構,完成二叉樹的建立,前序、中序和后序遍歷的操作,求所有葉子及結點總數(shù)的操作等。具體實現(xiàn)要求:分別利用前序遍歷、中序遍歷、后序遍歷所建二叉
8、樹。五、參考算法二叉樹的建立算法思路:主要利用二叉樹的性質(zhì):在編號的完全二叉樹中,編號為i的結點如果存在左孩子,則其編號為2i;若其存在