第一篇:數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告填寫要求(2012網(wǎng)工1、2班)
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告填寫要求
2013/2014學(xué)年第一學(xué)期
學(xué)號:以成績記載簿上的學(xué)號為準(zhǔn)。
指導(dǎo)老師:王正山
實(shí)驗(yàn)名稱:實(shí)驗(yàn)一 線性表操作及應(yīng)用實(shí)驗(yàn)二棧的操作及應(yīng)用實(shí)驗(yàn)三隊(duì)列的操作及應(yīng)用;實(shí)驗(yàn)四二叉樹的操作及應(yīng)用;實(shí)驗(yàn)五圖的操作及應(yīng)用;實(shí)驗(yàn)六查找和排序算法實(shí)現(xiàn)。課程名稱:數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)
實(shí)驗(yàn)時(shí)間:根據(jù)教學(xué)進(jìn)度表中的時(shí)間確定,以真實(shí)時(shí)間為準(zhǔn)。
實(shí)驗(yàn)地點(diǎn):X401或X405(以真實(shí)地點(diǎn)為準(zhǔn))
實(shí)驗(yàn)?zāi)康模?/p>
實(shí)驗(yàn)一:(1)掌握線性表的插入和刪除操作在順序存儲結(jié)構(gòu)上的實(shí)現(xiàn);(2)掌握線性表的建立、插入、刪除、打印和查找操作在鏈?zhǔn)酱鎯Y(jié)構(gòu)上的實(shí)現(xiàn)。
實(shí)驗(yàn)二:(1)掌握棧的入棧和出棧操作在順序存儲結(jié)構(gòu)上的實(shí)現(xiàn);(2)掌握棧的入棧和出棧操作在鏈?zhǔn)酱鎯Y(jié)構(gòu)上的實(shí)現(xiàn)。
實(shí)驗(yàn)三:(1)掌握隊(duì)列的入隊(duì)列和出隊(duì)列操作在順序存儲結(jié)構(gòu)上的實(shí)現(xiàn);(2)掌握隊(duì)列的入隊(duì)列和出隊(duì)列操作在鏈?zhǔn)酱鎯Y(jié)構(gòu)上的實(shí)現(xiàn)。
實(shí)驗(yàn)四:(1)掌握二叉樹的前序遍歷、中序遍歷、后序遍歷和建立二叉樹的算法在鏈?zhǔn)酱鎯Y(jié)構(gòu)上實(shí)現(xiàn);掌握利用遍歷二叉樹的遞歸思想實(shí)現(xiàn)建立二叉樹、復(fù)制二叉樹、交換二叉樹和求二叉樹中葉子結(jié)點(diǎn)數(shù)目等算法。
實(shí)驗(yàn)五:(1)掌握建立無向圖(有向圖)的鄰接矩陣和鄰接表算法;(2)掌握無向圖的深度優(yōu)先遍歷和廣度優(yōu)先遍歷算法;最小生成樹算法和拓?fù)渑判蛩惴ā?/p>
實(shí)驗(yàn)六:(1)掌握建立二叉排序樹和在二叉排序樹上查找指定結(jié)點(diǎn)的算法在鏈?zhǔn)酱鎯Y(jié)構(gòu)上的實(shí)現(xiàn);
(2)掌握快速排序在順序存儲結(jié)構(gòu)上的實(shí)現(xiàn)。
實(shí)驗(yàn)分析與實(shí)驗(yàn)心得:根據(jù)自己實(shí)際情況填寫(必填)。
問題和建議:根據(jù)自己實(shí)際情況填寫(必填)。
實(shí)驗(yàn)環(huán)境:Windows XP,VC++ 6.0
第二篇:數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告1(范文模版)
南京信息工程大學(xué)實(shí)驗(yàn)(實(shí)習(xí))報(bào)告
實(shí)驗(yàn)(實(shí)習(xí))名稱數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)(實(shí)習(xí))日期 2010-10-26得分指導(dǎo)教師周素萍
系信息管理與信息系統(tǒng)專業(yè)年級班次姓名學(xué)號
實(shí)驗(yàn)一順序表的基本操作及C語言實(shí)現(xiàn)
【實(shí)驗(yàn)?zāi)康摹?/p>
順序表的基本操作及 C 語言實(shí)現(xiàn)
【實(shí)驗(yàn)要求】
1、用 C 語言建立自己的線性表結(jié)構(gòu)的程序庫,實(shí)現(xiàn)順序表的基本操作。
2、對線性表表示的集合,集合數(shù)據(jù)由用戶從鍵盤輸入(數(shù)據(jù)類型為整型),建立相應(yīng)的順序表,且使得數(shù)據(jù)按從小到大的順序存放,將兩個(gè)集合的并的結(jié)果存儲在一個(gè)新的線性表集合中,并輸出。
3、撰寫實(shí)驗(yàn)報(bào)告并附上集合操作的程序和結(jié)果。(實(shí)驗(yàn)報(bào)告格式等會兒上傳)
【實(shí)驗(yàn)內(nèi)容】
1、根據(jù)教材定義的順序表結(jié)構(gòu),用 C 語言實(shí)現(xiàn)順序表結(jié)構(gòu)的創(chuàng)建、插入、刪除、查找等操作;
2、利用上述順序表操作實(shí)現(xiàn)如下程序:建立兩個(gè)順序表表示的集合(集合中無重復(fù)的元素),并求這樣的兩個(gè)集合的并。
【實(shí)驗(yàn)結(jié)果】
#include
#include
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define ERROR 0
#define OVERFLOW-1
typedef struct{
int *elem;int length;int listsize;
}SqList;
void InitList_Sq(SqList &L)
{
//構(gòu)造一個(gè)空的線性表 L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;
}//InitList_Sq
void ListInsert_Sq(SqList &L,int i,int e)
{
//在順序表L中的第i個(gè)位置之前插入新的元素e int *newbase,*p,*q;if(i<1||i>L.length+1){} q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=e;2 exit(ERROR);if(L.length>=L.listsize)newbase=(int*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));if(!newbase)exit(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;
++L.length;
}//ListInsert_Sq
void ListDelete_Sq(SqList &L,int i)
{
//在順序線性表L中刪除第i個(gè)元素 int *p,*q;exit(ERROR);if((i<1)||(i>L.length))p=&(L.elem[i-1]);q=L.elem+L.length-1;for(++p;p<=q;++p)*(p-1)=*p;--L.length;
}//ListDelete_Sq
void MergeList_Sq(SqList La,SqList Lb,SqList &Lc){
//已知線性表La和Lb中的數(shù)據(jù)元素按值非遞減排列。//歸并La和Lb得到新的線性表Lc,Lc的數(shù)據(jù)元素也按值非遞減排列。int *pa,*pb,*pc,*pa_last,*pb_last,i;pa=La.elem;pb=Lb.elem;Lc.listsize=Lc.length=La.length+Lb.length;pc=Lc.elem=(int *)malloc(Lc.listsize*sizeof(int));if(!Lc.elem)exit(OVERFLOW);pa_last=La.elem+La.length-1;pb_last=Lb.elem+Lb.length-1;while(pa<=pa_last&&pb<=pb_last){} while(pa<=pa_last)*pc++=*pa++;while(pb<=pb_last)*pc++=*pb++;for(i=0;i } for(i=0;i }//MergeList_Sq int LocateElem_Sq(SqList L,int e,int(*compare)(int)){ } void sort(SqList a,int n) { } int main()//在順序線性表L中查找第1個(gè)值與e滿足compare()的元素位序 int i=1,*p;p=L.elem;while(i<=L.length&&!(*p==e))++i;return i;return 0;if(i<=L.length)else int i,j,t;for(i=0;i SqList a,b,c; int i=0,n1,n2;InitList_Sq(a);InitList_Sq(b);printf(“請輸入第一個(gè)順序表的整數(shù)數(shù)據(jù)(以0000為結(jié)束標(biāo)志,100個(gè)數(shù)據(jù)以while(scanf(”%d“,&a.elem[i])&&(a.elem[i]!=0000)&&(++i));a.length=i;n1=i;printf(”請輸入第二個(gè)順序表的整數(shù)數(shù)據(jù)(以0000為結(jié)束標(biāo)志,100個(gè)數(shù)據(jù)以i=0;while(scanf(“%d”,&b.elem[i])&&(b.elem[i]!=0000)&&(++i));b.length=i;n2=i;sort(a,n1);printf(“順序表1排序后為:”);for(i=0;i }} i--;printf(“順序表1去除重復(fù)數(shù)據(jù)排序后為:”);for(i=0;i printf(“%d ”,a.elem[i]); printf(“n”); printf(“順序表2去除重復(fù)數(shù)據(jù)排序后為: for(i=0;i printf(”%d “,b.elem[i]); printf(”n“); printf(”合并后從小到大為:“); MergeList_Sq(a,b,c); printf(”n“); return 0; }”); 實(shí)驗(yàn)二電視畫面的取景與構(gòu)圖(2學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康?、了解電視畫面構(gòu)圖的元素。 2、掌握電視畫面構(gòu)圖的基本方式。 二、實(shí)驗(yàn)設(shè)備和儀器 專業(yè)數(shù)字?jǐn)z像機(jī)、電池、三角架 三、實(shí)驗(yàn)內(nèi)容及要求 1、實(shí)驗(yàn)內(nèi)容 (1)基本構(gòu)圖法。 (2)靜態(tài)構(gòu)圖法。 (3)動(dòng)態(tài)構(gòu)圖法。 (4)不規(guī)則構(gòu)圖法。 2、實(shí)驗(yàn)要求:本次實(shí)驗(yàn)分組進(jìn)行;每組成員4-6人。 四、實(shí)驗(yàn)原理及步驟 1、實(shí)驗(yàn)原理 構(gòu)圖是攝像人員拍攝電視畫面的一個(gè)主要環(huán)節(jié),是攝像師將現(xiàn)實(shí)形象轉(zhuǎn)變?yōu)槠聊恍蜗髸r(shí)采用的畫面結(jié)構(gòu)形式。攝像構(gòu)圖就是攝像師為表現(xiàn)某一特定的內(nèi)容和視覺美感效果,將鏡頭前被攝對象以及攝像的各種造型元素有機(jī)地組織安排在畫面中,以形成一定畫面形式的創(chuàng)作活動(dòng)。作為實(shí)驗(yàn)課,應(yīng)該注意組織鏡頭元素和鏡頭的使用進(jìn)行畫面的拍攝。 2、步驟 (1)準(zhǔn)備好攝像機(jī)、三腳架、SD卡、電池、白紙等。 (2)在三腳架上安裝攝像機(jī),開機(jī),調(diào)節(jié)白平衡。 (3)靜態(tài)構(gòu)圖拍攝。 (4)動(dòng)態(tài)構(gòu)圖拍攝。 (5)不規(guī)則構(gòu)圖拍攝。 (6)回放拍攝畫面(在電視或監(jiān)視器上看)。 (7)關(guān)機(jī),取出SD卡。 五、使用注意事項(xiàng) 1、構(gòu)圖訓(xùn)練是攝像的基本功,也是學(xué)習(xí)攝影之后對畫面構(gòu)圖的新的認(rèn)識。 2、在構(gòu)圖拍攝時(shí),可以結(jié)合短片或模仿的辦法進(jìn)行實(shí)驗(yàn)。 3、在實(shí)驗(yàn)拍攝的時(shí)候,特別要掌握好如何使用攝像機(jī)鏡頭,如光圈、聚焦、變焦的運(yùn)用。 4、如實(shí)驗(yàn)機(jī)時(shí)不夠,學(xué)生可與實(shí)驗(yàn)室聯(lián)系,利用開放機(jī)時(shí)完成實(shí)驗(yàn)。 六、實(shí)驗(yàn)結(jié)果分析及實(shí)驗(yàn)報(bào)告要求: 1、實(shí)驗(yàn)結(jié)果分析要求 (1)通過實(shí)驗(yàn),得出鏡頭構(gòu)圖與動(dòng)態(tài)構(gòu)圖的區(qū)別。 (2)構(gòu)圖的主要有哪些形式。 (3)記錄在實(shí)驗(yàn)過程中,根據(jù)實(shí)驗(yàn)結(jié)果得出的其他結(jié)論與分析。 2.實(shí)驗(yàn)報(bào)告要求 請根據(jù)實(shí)驗(yàn)的結(jié)果和實(shí)驗(yàn)指導(dǎo)書的要求,如實(shí)地撰寫實(shí)驗(yàn)報(bào)告。其中,“實(shí)驗(yàn)記錄”填寫實(shí)驗(yàn)的步驟和過程,“問題與討論”根據(jù)個(gè)人實(shí)驗(yàn)情況如實(shí)記錄所發(fā)現(xiàn)的問題。 注意:實(shí)驗(yàn)結(jié)束后提交一份實(shí)驗(yàn)報(bào)告電子文檔 電子文檔命名為“學(xué)號+姓名”,如:E01214058宋思怡 《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告 (一)學(xué)號:姓名:專業(yè)年級: 實(shí)驗(yàn)名稱:線性表 實(shí)驗(yàn)日期:2014年4月14日 實(shí)驗(yàn)?zāi)康模?/p> 1、熟悉線性表的定義及其順序和鏈?zhǔn)酱鎯Y(jié)構(gòu); 2、熟練掌握線性表在順序存儲結(jié)構(gòu)上實(shí)現(xiàn)基本操作的方法; 3、熟練掌握在各種鏈表結(jié)構(gòu)中實(shí)現(xiàn)線性表基本操作的方法; 4、掌握用 C/C++語言調(diào)試程序的基本方法。 實(shí)驗(yàn)內(nèi)容: 一、編寫程序?qū)崿F(xiàn)順序表的各種基本運(yùn)算,并在此基礎(chǔ)上設(shè)計(jì)一個(gè)主程序完成如下功能: (1)初始化順序表L; (2)依次在L尾部插入元素-1,21,13,24,8; (3)輸出順序表L; (4)輸出順序表L長度; (5)判斷順序表L是否為空; (6)輸出順序表L的第3個(gè)元素; (7)輸出元素24的位置; (8)在L的第4個(gè)元素前插入元素0; (9)輸出順序表L; (10)刪除L的第5個(gè)元素; (11)輸出順序表L。 源代碼 調(diào)試分析(給出運(yùn)行結(jié)果界面) 二、編寫程序?qū)崿F(xiàn)單鏈表的各種基本運(yùn)算,并在此基礎(chǔ)上設(shè)計(jì)一個(gè)主程序完成如下功能: ???? ???? 小結(jié)或討論: (1)實(shí)驗(yàn)中遇到的問題和解決方法 (2)實(shí)驗(yàn)中沒有解決的問題 (3)體會和提高 南京信息工程大學(xué)實(shí)驗(yàn)(實(shí)習(xí))報(bào)告 實(shí)驗(yàn)(實(shí)習(xí))名稱數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)(實(shí)習(xí))日期 2011-11-2得分指導(dǎo)教師周素萍 系公共管理系專業(yè)信息管理與信息系統(tǒng)年級10級班次1姓名常玲學(xué)號2010230700 3實(shí)驗(yàn)一順序表的基本操作及C語言實(shí)現(xiàn) 【實(shí)驗(yàn)?zāi)康摹?/p> 1、順序表的基本操作及 C 語言實(shí)現(xiàn) 【實(shí)驗(yàn)要求】 1、用 C 語言建立自己的線性表結(jié)構(gòu)的程序庫,實(shí)現(xiàn)順序表的基本操作。 2、對線性表表示的集合,集合數(shù)據(jù)由用戶從鍵盤輸入(數(shù)據(jù)類型為整型),建立相應(yīng)的順序表,且使得數(shù)據(jù)按從小到大的順序存放,將兩個(gè)集合的并的結(jié)果存儲在一個(gè)新的線性表集合中,并輸出。 【實(shí)驗(yàn)內(nèi)容】 1、根據(jù)教材定義的順序表機(jī)構(gòu),用 C 語言實(shí)現(xiàn)順序表結(jié)構(gòu)的創(chuàng)建、插入、刪除、查找等操作; 2、利用上述順序表操作實(shí)現(xiàn)如下程序:建立兩個(gè)順序表表示的集合(集合中無重 復(fù)的元素),并求這樣的兩個(gè)集合的并。 【實(shí)驗(yàn)結(jié)果】 [實(shí)驗(yàn)數(shù)據(jù)、結(jié)果、遇到的問題及解決] 一. Status InsertOrderList(SqList &va,ElemType x) { } 二. Status DeleteK(SqList &a,int i,int k) {//在非遞減的順序表va中插入元素x并使其仍成為順序表的算法 int i;if(va.length==va.listsize)return(OVERFLOW);for(i=va.length;i>0,x } //注意i的編號從0開始 int j;if(i<0||i>a.length-1||k<0||k>a.length-i)return INFEASIBLE;for(j=0;j<=k;j++)a.elem[j+i]=a.elem[j+i+k];a.length=a.length-k;return OK; 三.// 將合并逆置后的結(jié)果放在C表中,并刪除B表 Status ListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C) { LinkList pa,pb,qa,qb;pa=A;pb=B;qa=pa;qb=pb;// 保存pa的前驅(qū)指針 // 保存pb的前驅(qū)指針 pa=pa->next;pb=pb->next;A->next=NULL;C=A;while(pa&&pb){} while(pa){} qa=pa;pa=pa->next;qa->next=A->next;A->next=qa;if(pa->data data){} else{} qb=pb;pb=pb->next;qb->next=A->next;//將當(dāng)前最小結(jié)點(diǎn)插入A表表頭 A->next=qb;qa=pa;pa=pa->next;qa->next=A->next;//將當(dāng)前最小結(jié)點(diǎn)插入A表表頭 A->next=qa; } } pb=B;free(pb);return OK;qb=pb;pb=pb->next;qb->next=A->next;A->next=qb; 順序表就是把線性表的元素存儲在數(shù)組中,元素之間的關(guān)系直接通過相鄰元素的位置來表達(dá)。 優(yōu)點(diǎn):簡單,數(shù)據(jù)元素的提取速度快; 缺點(diǎn):(1)靜態(tài)存儲,無法預(yù)知問題規(guī)模的大小,可能空間不足,或浪費(fèi)存儲空間;(2)插入元素和刪除元素時(shí)間復(fù)雜度高——O(n) 求兩個(gè)集合的并集 該算法是求兩個(gè)集合s1和s2的并集,并將結(jié)果存入s引用參數(shù)所表示的集合中帶回。首先把s1集合復(fù)制到s中,然后把s2中的每個(gè)元素依次插入到集合s中,當(dāng)然重復(fù)的元素不應(yīng)該被插入,最后在s中就得到了s1和s2的并集,也就是在s所對應(yīng)的實(shí)際參數(shù)集合中得到并集。第三篇:實(shí)驗(yàn)報(bào)告填寫要求
第四篇:數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告
第五篇:數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告