數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)1(5篇)_第1頁
數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)1(5篇)_第2頁
數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)1(5篇)_第3頁
數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)1(5篇)_第4頁
數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)1(5篇)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)1(5篇)在日常學(xué)習(xí)、工作或生活中,大家總少不了接觸作文或者范文吧,通過文章可以把我們那些零零散散的思想,聚集在一塊。那么我們該如何寫一篇較為完美的范文呢?以下是我為大家收集的優(yōu)秀范文,歡迎大家共享閱讀。

multi_set金陵科技學(xué)院試驗報告

loc=i;for(i=;i=loc;i--)[i+1]=[i];[loc]=x;++;}voiddelete_x(intx){inti,j,found=0;for(i=0;i=;i++)if(x==[i]){found=1;for(j=i+1;j=;j++)[j-1]=[j];i--;--;}if(found==0)printf(“xisnotfoundn〞);else{printf(“xisdeletedn〞);printf(“thelistafterdeletionis:n〞);print_list();

金陵科技學(xué)院試驗報告

}}

voidmain(){intx,choice;while(1){printf(“**********menu**********n〞);printf(“1--printn〞);printf(“2--searchn〞);printf(“3--insertn〞);printf(“4--deleten〞);printf(“5--exitn〞);printf(“pleaseinputyourchoice:〞);scanf(“%d〞,choice);

switch(choice){case1:printf(“theoriginallistis:n〞);print_list();break;case2:printf(“plsinputxyouwanttosearch:n〞);

金陵科技學(xué)院試驗報告

scanf(“%d〞,x);find_all_x(x);break;case3:printf(“plsinputxyouwanttoinsert:n〞);scanf(“%d〞,x);insert_x(x);printf(“thelistafterinsertionis:n〞);print_list();break;case4:printf(“plsinputxyouwanttodelete:n〞);scanf(“%d〞,x);delete_x(x);printf(“thelistafterdeletionis:n〞);print_list();break;case5:exit(0);}}}

金陵科技學(xué)院試驗報告

金陵科技學(xué)院試驗報告

四、試驗結(jié)果與分析(程序運行結(jié)果及其分析)

五、試驗體會(遇到問題及解決方法,編程后的心得體會)

金陵科技學(xué)院試驗報告

試驗項目名稱:單鏈表試驗學(xué)時:2同組學(xué)生姓名:試驗地點:試驗日期:試驗成績:批改教師:批改時間:

金陵科技學(xué)院試驗報告

試驗2單鏈表

一、試驗?zāi)康暮鸵?/p>

1、試驗?zāi)康?/p>

把握單鏈表的定位、插入、刪除等操作。

2、試驗要求

(1)注意鏈表的空間是動態(tài)分派的,某結(jié)點不用之后要及時進行物理刪除,以便釋放其內(nèi)存空間。

(2)鏈表不能實現(xiàn)直接定位,一定注意指針的保存,防止丟失。

二、試驗儀器和設(shè)備

turboc2.0/visualc++

三、試驗內(nèi)容與過程(含程序清單及流程圖)

1、必做題

(1)編寫程序建立一個單鏈表,并逐個輸出單鏈表中所有數(shù)據(jù)元素。(2)在遞增有序的單鏈表中插入一個新結(jié)點x,保持單鏈表的有序性。

解題思路:首先查找插入的位置然后進行插入操作;從第一個結(jié)點開始找到第一個大于該新結(jié)點值的結(jié)點即為插入位置;然后在找到的此結(jié)點之前插入新結(jié)點;注意保存插入位置之前結(jié)點的指針才能完成插入操作。

(3)編寫實現(xiàn)帶頭結(jié)點單鏈表就地逆置的子函數(shù),并編寫主函數(shù)測試結(jié)果。

2、選做題

已知指針la和lb分別指向兩個無頭結(jié)點單鏈表的首元結(jié)點。要求編一算法實現(xiàn),從表la中刪除自第i個元素起共len個元素后,將它們插入到表lb中第j個元素之前。程序清單:

金陵科技學(xué)院試驗報告

金陵科技學(xué)院試驗報告

四、試驗結(jié)果與分析(程序運行結(jié)果及其分析)

五、試驗體會(遇到問題及解決方法,編程后的心得體會)

金陵科技學(xué)院試驗報告

試驗項目名稱:堆棧和隊列試驗學(xué)時:2同組學(xué)生姓名:試驗地點:試驗日期:試驗成績:批改教師:批改時間:

金陵科技學(xué)院試驗報告

試驗3堆棧和隊列

一、試驗?zāi)康暮鸵?/p>

(1)把握應(yīng)用棧解決問題的方法。(2)把握利用棧進行表達式求和的算法。

(3)把握隊列的存儲結(jié)構(gòu)及基本操作實現(xiàn),并能在相應(yīng)的應(yīng)用問題中正確選用它們。

二、試驗儀器和設(shè)備

turboc2.0/visualc++

三、試驗內(nèi)容與過程(含程序清單及流程圖)

1、必做題

(1)判斷一個算術(shù)表達式中開括號和閉括號是否配對。(2)測試“漢諾塔〞問題。

(3)假設(shè)稱正讀和反讀都一致的字符序列為〞回文〞,試寫一個算法判別讀入的一個以’@’為終止符的字符序列是否是“回文〞。

2、選做題

在順序存儲結(jié)構(gòu)上實現(xiàn)輸出受限的雙端循環(huán)隊列的入列和出列算法。設(shè)每個元素表示一個待處理的作業(yè),元素值表示作業(yè)的預(yù)計時間。入隊列采取簡化的短作業(yè)優(yōu)先原則,若一個新提交的作業(yè)的預(yù)計執(zhí)行時間小于隊頭和隊尾作業(yè)的平均時間,則插入在隊頭,否則插入在隊尾。程序清單:

金陵科技學(xué)院試驗報告

四、試驗結(jié)果與分析(程序運行結(jié)果及其分析)

金陵科技學(xué)院試驗報告

五、試驗體會(遇到問題及解決方法,編程后的心得體會)

金陵科技學(xué)院試驗報告

試驗項目名稱:串試驗學(xué)時:2同組學(xué)生姓名:試驗地點:試驗日期:試驗成績:批改教師:批改時間:

金陵科技學(xué)院試驗報告

試驗4串

一、試驗?zāi)康暮鸵?/p>

把握串的存儲及應(yīng)用。

二、試驗儀器和設(shè)備

turboc2.0/visualc++

三、試驗內(nèi)容與過程(含程序清單及流程圖)

1、必做題

(1)編寫輸出字符串s中值等于字符ch的第一個字符的函數(shù),并用主函數(shù)測試結(jié)果。

(2)編寫輸出字符串s中值等于字符ch的所有字符的函數(shù),并用主函數(shù)測試結(jié)果。

解題思路:可以將第一題程序改進成一個子函數(shù),在此題中循環(huán)調(diào)用。(3)設(shè)字符串采用單字符的鏈式存儲結(jié)構(gòu),編程刪除串s從位置i開始長度為k的子串。

2、選做題

假設(shè)以鏈結(jié)構(gòu)表示串,編寫算法實現(xiàn)將串s插入到串t中某個字符之后,若串t中不存在這個字符,則將串s聯(lián)接在串t的末尾。

提醒:為提高程序的通用性,插入位置字符應(yīng)設(shè)計為從鍵盤輸入。程序清單:

金陵科技學(xué)院試驗報告

四、試驗結(jié)果與分析(程序運行結(jié)果及其分析)

金陵科技學(xué)院試驗報告

五、試驗體會(遇到問題及解決方法,編程后的心得體會)

金陵科技學(xué)院試驗報告

試驗項目名稱:二叉樹試驗學(xué)時:2同組學(xué)生姓名:試驗地點:試驗日期:試驗成績:批改教師:批改時間:

金陵科技學(xué)院試驗報告

試驗5二叉樹

一、試驗?zāi)康暮鸵?/p>

(1)把握二叉樹的生成,以及前、中、后序遍歷算法。(2)把握應(yīng)用二叉樹遞歸遍歷思想解決問題的方法。

二、試驗儀器和設(shè)備

turboc2.0/visualc++

三、試驗內(nèi)容與過程(含程序清單及流程圖)

1、必做題

(1)建立一棵二叉樹。對此樹進行前序遍歷、中序遍歷及后序遍歷,輸出遍歷序列。

(2)在第一題基礎(chǔ)上,求二叉樹中葉結(jié)點的個數(shù)。(3)在第一題基礎(chǔ)上,求二叉樹中結(jié)點總數(shù)。(4)在第一題基礎(chǔ)上,求二叉樹的深度。

2、選做題

已知一棵完全二叉樹存于順序表sa中,[1…]存儲結(jié)點的值。試編寫算法由此順序存儲結(jié)構(gòu)建立該二叉樹的二叉鏈表。

解題思路:根據(jù)完全二叉樹順序存儲的性質(zhì)來確定二叉樹的父子關(guān)系即“還原〞了二叉樹,之后再依照二叉樹二叉鏈表的構(gòu)造方法進行建立。完全二叉樹順序存儲的一個重要性質(zhì)為,第i個結(jié)點的左孩子是編號為2i的結(jié)點,第i個結(jié)點的右孩子是編號為2i+1的結(jié)點。程序清單:

金陵科技學(xué)院試驗報告

四、試驗結(jié)果與分析(程序運行結(jié)果及其分析)

金陵科技學(xué)院試驗報告

五、試驗體會(遇到問題及解決方法,編程后的心得體會)

金陵科技學(xué)院試驗報告

試驗項目名稱:圖試驗學(xué)時:2同組學(xué)生姓名:試驗地點:試驗日期:試驗成績:批改教師:批改時間:

金陵科技學(xué)院試驗報告

試驗6圖

一、試驗?zāi)康暮鸵?/p>

(1)熟練把握圖的基本概念、構(gòu)造及其存儲結(jié)構(gòu)。

(2)熟練把握對圖的深度優(yōu)先探尋遍歷和廣度優(yōu)先探尋遍歷的算法。

二、試驗儀器和設(shè)備

turboc2.0/visualc++

三、試驗內(nèi)容與過程(含程序清單及流程圖)

1、必做題

(1)構(gòu)造一個無向圖(用鄰接矩陣表示存儲結(jié)構(gòu))。

(2)對上面所構(gòu)造的無向圖,進行深度優(yōu)先遍歷和廣度優(yōu)先遍歷,輸出遍歷序列。

2、選做題

采用鄰接表存儲結(jié)構(gòu),編寫一個判別無向圖中任意給定的兩個頂點之間是否存在一條長度為k的簡單路徑的算法。簡單路徑是指其頂點序列中不含有重復(fù)頂點的路徑。提醒:兩個頂點及k值均作為參數(shù)給出。程序清單:

金陵科技學(xué)院試驗報告

四、試驗結(jié)果與分析(程序運行結(jié)果及其分析)

五、試驗體會(遇到問題及解決方法,編程后的心得體會)

金陵科技學(xué)院試驗報告

試驗項目名稱:排序試驗學(xué)時:2同組學(xué)生姓名:試驗地點:試驗日期:試驗成績:批改教師:批改時間:

金陵科技學(xué)院試驗報告

試驗7排序

一、試驗?zāi)康暮鸵?/p>

(1)熟練把握希爾排序、堆排序、直接插入排序、起泡排序、快速排序、直接選擇排序、歸并排序和基數(shù)排序的基本概念。

(2)把握以上各種排序的算法。區(qū)分以上不同排序的優(yōu)、缺點。

二、試驗儀器和設(shè)備

turboc2.0/visualc++

三、試驗內(nèi)容與過程(含程序清單及流程圖)

1、必做題

用隨機數(shù)產(chǎn)生100000個待排序數(shù)據(jù)元素的關(guān)鍵字值。測試以下各排序函數(shù)的機器實際執(zhí)行時間(至少測試兩個):直接插入排序、希爾排序(增量為4,2,1)、冒泡排序、快速排序、直接選擇排序、堆排序。

2、選做題

假設(shè)含n個記錄的序列中,其所有關(guān)鍵字為值介于v和w之間的整數(shù),且其中好多關(guān)鍵字的值是一致的。則可按如下方法排序:另設(shè)數(shù)組number[v…w],令number[i]統(tǒng)計關(guān)鍵字為整數(shù)i的紀錄個數(shù),然后按number重排序列以達到有序。試編寫算法實現(xiàn)上述排序方法,并探討此種方法的優(yōu)缺點。程序清單:

金陵科技學(xué)院試驗報告

四、試驗結(jié)果與分析(程序運行結(jié)果及其分析)

金陵科技學(xué)院試驗報告

五、試驗體會(遇到問題及解決方法,編程后的心得體會)

金陵科技學(xué)院試驗報告

試驗項目名稱:查找試驗學(xué)時:2同組學(xué)生姓名:試驗地點:試驗日期:試驗成績:批改教師:批改時間:

金陵科技學(xué)院試驗報告

試驗8查找

一、試驗?zāi)康暮鸵?/p>

(1)把握順序表查找、有序表查找、索引順序表查找的各種算法。(2)把握哈希表設(shè)計。

二、試驗儀器和設(shè)備

turboc2.0/visualc++

三、試驗內(nèi)容與過程(含程序清單及流程圖)

1、必做題

(1)在一個遞增有序的線性表中利用二分查找法查找數(shù)據(jù)元素x。

2、選做題

(2)構(gòu)造一個哈希表,哈希函數(shù)采用除留余數(shù)法,哈希沖突解決方法采用鏈地址法。設(shè)計一個測試程序進行測試。

提醒:構(gòu)造哈希表只是完成查找的第一步,大家應(yīng)當把握在哈希表上進行查找的過程,可以試著編程序?qū)崿F(xiàn)。程序清單:

金陵科技學(xué)院試驗報告

四、試驗結(jié)果與分析(程序運行結(jié)果及其分析)

五、試驗體會(遇到問題及解決方法,編程后的心得體會)

數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)1篇四

石家莊鐵道大學(xué)

實驗任務(wù)書

課程名稱:數(shù)據(jù)結(jié)構(gòu)試驗學(xué)時:8適用專業(yè):自動化類專業(yè)開設(shè)學(xué)院:電氣與電子工程學(xué)院

石家莊鐵道大學(xué)

14學(xué)年—15學(xué)年第2學(xué)期數(shù)據(jù)結(jié)構(gòu)試驗任務(wù)書

專業(yè)名稱:試驗學(xué)時:2課程名稱:數(shù)據(jù)結(jié)構(gòu)任課教師:王明明試驗題目:線性表的基本操作

試驗環(huán)境:visualc++試驗?zāi)康模?/p>

1、把握線性表的定義;

2、把握線性表的基本操作,如建立、查找、插入和刪除等。

試驗內(nèi)容:

定義一個包含學(xué)生信息(學(xué)號,姓名,成績)的的順序表或鏈表,使其具有如下功能:(1)根據(jù)指定學(xué)生個數(shù),逐個輸入學(xué)生信息;(2)逐個顯示學(xué)生表中所有學(xué)生的相關(guān)信息;

(3)根據(jù)姓名進行查找,返回此學(xué)生的學(xué)號和成績;

(4)根據(jù)指定的位置可返回相應(yīng)的學(xué)生信息(學(xué)號,姓名,成績);(5)給定一個學(xué)生信息,插入到表中指定的位置;(6)刪除指定位置的學(xué)生記錄;(7)統(tǒng)計表中學(xué)生個數(shù)。

試驗提醒:

學(xué)生信息的定義:typedefstruct{charno[8];//8位學(xué)號charname[20];//姓名intprice;//成績}student;

順序表的定義

typedefstruct{student*elem;//指向數(shù)據(jù)元素的基地址

intlength;//線性表的當前長度}sqlist;

鏈表的定義:

typedefstructlnode{studentdata;//數(shù)據(jù)域structlnode*next;//指針域}lnode,*linklist;

試驗要求:

(1)程序要添加適當?shù)慕忉?,程序的書寫要采用縮進格式。

(2)程序要具在一定的頑強性,即當輸入數(shù)據(jù)非法時,程序也能適當?shù)刈龀龇磻?yīng),如插入刪除時指定的位置不對等等。

(3)程序要做到界面友好,在程序運行時用戶可以根據(jù)相應(yīng)的提醒信息進行操作。(4)根據(jù)試驗報告模板詳細書寫試驗報告,在試驗報告中給出鏈表根據(jù)姓名進行查找的算法和插入算法的流程圖。

石家莊鐵道大學(xué)

14學(xué)年—15學(xué)年第2學(xué)期數(shù)據(jù)結(jié)構(gòu)試驗任務(wù)書

專業(yè)名稱:試驗學(xué)時:2課程名稱:數(shù)據(jù)結(jié)構(gòu)任課教師:李冬梅

試驗題目:棧的應(yīng)用-算術(shù)表達式求值

試驗環(huán)境:visualc++6.0試驗?zāi)康模?/p>

1.把握棧的定義及實現(xiàn);

2.把握利用棧求解算術(shù)表達式的方法。

試驗內(nèi)容:

通過修改完善教材中的算法3.4,利用棧來實現(xiàn)算術(shù)表達式求值的算法。對算法3.4中調(diào)用的幾個函數(shù)要給出其實現(xiàn)過程:

(1)函數(shù)in(c):判斷c是否為運算符;

(2)函數(shù)precede(t1,t2):判斷運算符t1和t2的優(yōu)先級;(3)函數(shù)operate(a,theta,b):對a和b進行二元運算theta。

程序運行時,輸入合法的算術(shù)表達式(中間值及最終結(jié)果要在0~9之間,可以包括加減乘除和括號),便可輸出相應(yīng)的計算結(jié)果。如下圖:

試驗提醒:(僅供參考,每個函數(shù)的具體實現(xiàn)可以有多種方法,希望有創(chuàng)新)

1.將棧的定義和實現(xiàn)單獨保存在頭文件“stack.h〞中,中包含此頭文件(即#include“stack.h〞)。的具體實現(xiàn)(1)主函數(shù)如下:voidmain(){cout“請輸入算術(shù)表達式,并以#終止.〞(2)函數(shù)evaluateexpression的實現(xiàn)見算法3.10(3)函數(shù)in(c)的實現(xiàn)可以采用以下方式:

statusin(selemtypec)//應(yīng)在前面有定義typedefcharselemtype;{//判斷c是否為運算符switch(c){case'+':returntrue;??//補充完整

default:returnfalse;}}(4)函數(shù)precede(t1,t2)的實現(xiàn)可以采用以下形式:selemtypeprecede(selemtypet1,selemtypet2){//根據(jù)教材表3.1,判斷兩個運算符的優(yōu)先關(guān)系selemtypef;switch(t2){case'+':case'-':if(t1=='('||t1=='#')f='';elsef='';break;??//補充完整}returnf;}(5)函數(shù)operate(a,theta,b)的實現(xiàn)可以采用以下方式:

selemtypeoperate(selemtypea,selemtypetheta,selemtypeb){selemtypec;a=a-48;b=b-48;switch(theta){case'+':c=a+b+48;break;??//補充完整}returnc;}

選做內(nèi)容1:進一步改進,使表達式的中間值及最終結(jié)果不局限于0~9之間的個位數(shù)。(如

果完成要在試驗報告中注明),如下圖:

選做內(nèi)容2:

將表達式轉(zhuǎn)化成后綴表達式輸出,利用后綴表達式求表達式的值并輸出。

將中綴表達式轉(zhuǎn)化成后綴表達式存儲在隊列中,然后利用后綴表達式求表達式的值并輸出。

將中綴表達式轉(zhuǎn)化成后綴的思想:

(1)創(chuàng)立一空隊列,用來存放后綴表達式,建立并初始化操作符棧optr,將表達式起始符“#〞壓入optr棧。

(2)依次讀入表達式中每個字符ch,循環(huán)執(zhí)行(3)至(5),直至求出整個表達式轉(zhuǎn)換完畢。

(3)取出optr的棧頂元素,當optr的棧頂元素和當前讀入的字符ch均為“#〞時,整個中綴表達式轉(zhuǎn)換完畢。

(4)若ch不是運算符,則進隊,讀入下一字符ch。

(5)若ch是運算符,則根據(jù)optr的棧頂元素和ch的優(yōu)先權(quán)比較結(jié)果,做不同的處理。

①若是小于,則ch壓入optr棧,讀入下一字符ch。②若是大于,則彈出optr棧頂?shù)倪\算符,進隊。③若是等于,則optr的棧頂元素是“(〞且ch是“)〞,這時彈出optr棧頂?shù)摹?〞,相當于去掉括號,然后讀入下一字符ch。對后綴表達式進行計算的具體步驟為:

建立一個棧s從左到右讀后綴表達式,讀到數(shù)字就將它轉(zhuǎn)換為數(shù)值壓入棧s中,讀到運算符則從棧中依次彈出兩個數(shù)分別到y(tǒng)和x,然后以“x運算符y〞的形式計算出結(jié)果,再壓進棧s中。假使后綴表達式未讀完,重復(fù)執(zhí)行上面過程,最終輸出棧頂?shù)臄?shù)值即可終止。

試驗要求:

(1)程序要添加適當?shù)慕忉?,程序的書寫要采用縮進格式。

(2)程序要具在一定的頑強性,即當輸入數(shù)據(jù)非法時,程序也能適當?shù)刈龀龇磻?yīng)。(3)程序要做到界面友好,在程序運行時用戶可以根據(jù)相應(yīng)的提醒信息進行操作。(4)根據(jù)試驗報告模板詳細書寫試驗報告,在試驗報告中給出表達式求值算法的流程圖。

數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)1篇五

數(shù)據(jù)結(jié)構(gòu)實驗指導(dǎo)書

數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)書

目錄

數(shù)據(jù)結(jié)構(gòu)試驗指導(dǎo)書1

目錄1試驗指導(dǎo)書概述2上機試驗題目3

試驗一c語言相關(guān)知識復(fù)習(xí)3

一、試驗?zāi)康?

二、試驗內(nèi)容3試驗二單鏈表的插入、刪除3

一、試驗?zāi)康?

二、試驗內(nèi)容3

三、實現(xiàn)提醒4試驗三棧及其應(yīng)用5

一、試驗?zāi)康?

二、試驗內(nèi)容5試驗四二叉樹的遞歸算法6

一、試驗?zāi)康?

二、試驗內(nèi)容6試驗五圖的遍歷7

一、試驗?zāi)康?

二、試驗內(nèi)容7試驗六有序表的查找7

一、試驗?zāi)康?

二、試驗內(nèi)容7試驗七哈希表7

一、試驗?zāi)康?

二、試驗內(nèi)容7試驗八內(nèi)部排序算法的應(yīng)用8

一、試驗?zāi)康?

二、試驗內(nèi)容8

試驗指導(dǎo)書概述

“數(shù)據(jù)結(jié)構(gòu)〞是計算機專業(yè)一門重要的專業(yè)技術(shù)基礎(chǔ)課程,是一門關(guān)鍵性核心課程。本課程系統(tǒng)地介紹了軟件設(shè)計中常用的數(shù)據(jù)結(jié)構(gòu)以及相應(yīng)的存儲結(jié)構(gòu)和實現(xiàn)算法,介紹了多種常用的查找和排序技術(shù),并對其進行了性能分析和比較,內(nèi)容十分豐富。本課程的學(xué)習(xí)將為后續(xù)課程的學(xué)習(xí)以及軟件設(shè)計水平的提高打下良好的基礎(chǔ)。

由于以下原因,使得把握這門課程具有較大難度:內(nèi)容多,時間短,給學(xué)習(xí)帶來困難;

貫穿全書的動態(tài)鏈表存儲結(jié)構(gòu)和遞歸技術(shù)是學(xué)習(xí)中的重點和難點;隱含在各部分的技術(shù)和方法豐富,也是學(xué)習(xí)的重點和難點;先修課程中所介紹的專業(yè)性知識不多,加大了學(xué)習(xí)難度。

由于數(shù)據(jù)結(jié)構(gòu)課程的技術(shù)性與實踐性,《數(shù)據(jù)結(jié)構(gòu)課程試驗》的設(shè)置十分必要。為了幫助學(xué)生更好地學(xué)習(xí)本課程,理解和把握算法設(shè)計所需的技術(shù),為整個專業(yè)學(xué)習(xí)打好基礎(chǔ),要求運用所學(xué)知識,上機解決一些典型問題,通過分析、設(shè)計、編碼、調(diào)試等各環(huán)節(jié)的訓(xùn)練,使學(xué)生深刻理解、穩(wěn)固把握所用到的一些技術(shù)。

上機實踐是對學(xué)生的一種全面綜合訓(xùn)練,是與課堂聽講、自學(xué)和練習(xí)相輔相成的必不可少的一個教學(xué)環(huán)節(jié)。通過上機實踐,使學(xué)生在可能短的時間內(nèi)對數(shù)據(jù)結(jié)構(gòu)知識的實踐和應(yīng)用有一個比較全面和系統(tǒng)的認識,達到理論與實踐相結(jié)合的目的。

為了達到上述目的,本指導(dǎo)書安排了8個試驗題目,它們與教科書的各章有緊湊的關(guān)系,使學(xué)生在試驗后能加深對課程內(nèi)容的理解,加強動手能力。

每個試驗題目采取了統(tǒng)一的格式,由問題描述、基本要求、測試數(shù)據(jù)、實現(xiàn)提醒等部分組成。

問題描述旨在為讀者建立問題提出的背景環(huán)境,指明問題“是什么〞;

要求則對問題進一步求精,劃出問題的邊界,指出具體的參量或前提條件,并規(guī)定該題的最低限度要求;

測試部分旨在為檢查學(xué)生上機作業(yè)提供便利,在完成實習(xí)題時應(yīng)自己設(shè)計完整和嚴格的測試方案,當數(shù)據(jù)輸入量較大時,提倡以文件形式向程序提供輸入數(shù)據(jù);

實現(xiàn)提醒對實現(xiàn)中的難點及其解法思路等問題作了簡要提醒,個別問題給出了參考實現(xiàn)。

下面帶*的題目為選做題目。

上機試驗題目

試驗一c語言相關(guān)知識復(fù)習(xí)

一、試驗?zāi)康?/p>

復(fù)習(xí)c語言中函數(shù)、數(shù)組、結(jié)構(gòu)體、文件等概念,把握它們的描述與操作方法;熟悉把握c++中typedef、引用參數(shù)調(diào)用()的概念及使用方法,為理解數(shù)據(jù)結(jié)構(gòu)課程的后續(xù)內(nèi)容以及算法書寫奠定基礎(chǔ)。

二、試驗內(nèi)容問題描述:編寫一個函數(shù),求一個整數(shù)數(shù)組中的最大、最小值。

要求:在函數(shù)聲明中采用引用參數(shù)傳遞方式實現(xiàn)最大、最小值的返回。測試:在主函數(shù)中輸入10個數(shù),調(diào)用此函數(shù),打印輸出最大和最小值。2關(guān)于指針的使用:

用malloc方式分別申請兩個指針,并實現(xiàn)兩個指針內(nèi)容的比較大小操作。要求:此功能在一個函數(shù)內(nèi)實現(xiàn),該函數(shù)接受兩個整數(shù)值,存儲到兩個指針內(nèi)容中,輸出兩者中的最大值。

測試:從主函數(shù)中輸入兩個數(shù),調(diào)用該函數(shù),打印輸出交換后的值。

試驗二單鏈表的插入、刪除

一、試驗?zāi)康?/p>

1、熟悉某種數(shù)據(jù)結(jié)構(gòu)在計算機上實現(xiàn)的方法。

2、把握單鏈表的定義、創(chuàng)立、插入、刪除、遍歷等基本操作的實現(xiàn)。

3、體會單鏈表操作、有序表插入、刪除的一般方法。

二、試驗內(nèi)容

問題描述:已知遞增有序的單鏈表a,編寫算法實現(xiàn)向a中插入或刪除一個元素,并保持a的有序性。

試驗要求:

1、結(jié)點的數(shù)據(jù)均為整型。

2、若表中已經(jīng)存在此元素,則不插入

三、實現(xiàn)提醒

1.在已知的線性表中插入或刪除,需要下面的輔助函數(shù):線性表的創(chuàng)立、線性表的遍歷

2.在單鏈表表中插入或刪除,需依次實現(xiàn):

a)單鏈表結(jié)構(gòu)的定義

b)單鏈表的創(chuàng)立(頭插法或尾插法建表)c)單鏈表的遍歷

d)單鏈表的插入、刪除(采用順序查找方法,順頭指針往后,查找插入或刪除位置,再修改指針)

//頭文件

#include“stdlib.h〞//預(yù)定義常量#definenull0

//單鏈表的定義

typedefstructlnode{intdata;structlnode*next;}lnode,*linklist;//單鏈表的創(chuàng)立

voidcreate_list(linklistl){intdata;linklistp,q;l=(linklist)malloc(sizeof(lnode));l-next=null;

q=l;

scanf(“%d〞,data);while(data!=0){

p=(linklist)malloc(sizeof(lnode));

p-data=data;

p-next=q-next;

q-next=p;

q=p;

scanf(“%d〞,data);}}

//單鏈表的遍歷

voidtranverselist(linklistl){

linklistp;

p=l-next;

if(p==null)

{

printf(“niln〞);

return;

}

while(p!=null)

{

printf(“%d〞,p-data);

p=p-next;

}

printf(“n〞);}

試驗三棧及其應(yīng)用

一、試驗?zāi)康?/p>

1、熟悉棧的順序表示與實現(xiàn)。

2、熟悉棧的應(yīng)用。

3、理解并把握遞歸函數(shù)的設(shè)計與實現(xiàn)。

二、試驗內(nèi)容問題描述:利用棧實現(xiàn)十進制數(shù)n轉(zhuǎn)化為d進制數(shù)要求:

1)輸入一個n和d,打印輸出d進制數(shù)序列。

2)利用順序棧來實現(xiàn)十進制數(shù)n轉(zhuǎn)化為其他d進制數(shù)。此時,需要同時實現(xiàn)初始化空棧、入棧、出棧、判??盏容o助功能。測試數(shù)據(jù):

(1)輸入n:1348

d:8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論