任課教師:孫樹森
《資料結構與演算法》
(2012-2013學年第2學期)實驗
報告學號:2011329700214
姓名:周咪咪
班級:11數媒2班
實驗1:鍊錶的建立與操作
一、 實驗目的:
掌握鍊錶資料結構的建立及操作;
二、 實驗重點:
利用鍊錶的原空間進行鍊錶的反轉;
三、 實驗內容:
設計乙個將輸入資料建立成煉表、並依次輸出鍊錶資料、利用原空間把鍊錶反轉的程式。
四、 實驗步驟:
1. 掌握鍊錶的資料結構;
2. 建立空鍊錶;
3. 用頭插法向鍊錶插入資料,實驗資料:
驗證資料:20,20,17,16,15,15,11,10,8,7,7,5,4;
4. 依次輸出鍊錶中的資料;
5. 利用鍊錶原空間進行對鍊錶進行反轉;
6. 依次輸出反轉後的鍊錶資料,以判斷反轉操作的正確性,注意反轉後,鍊錶的第乙個和最後乙個元素是否正確;
實驗提示:實驗1鍊錶。***;
7,高階要求:完成p40 3.6.1的功能;
五、 程式原始碼:
方法1:依次反轉
#include
#include
typedef struct nodenode,*linklist;
//頭插法,輸入順序為反
void input(linklist *l,int n)
}//在螢幕上輸出鍊錶
void output(node *l,int n)
int i;
for(i=0;i
l=l->next;
printf("%d",l->data);
printf("\n");
}void reverse(linklist l,int n)
}void main()
方法2:指標反向
#include
#include
typedef struct nodenode,*linklist;
//頭插法,輸入順序為反
void input(linklist *l,int n)
}//在螢幕上輸出鍊錶
void output(node *l,int n)
int i;
for(i=0;i l=l->next;
printf("%d->",l->data);
}l=l->next;
printf("%d",l->data);
printf("\n");
}void reverse(linklist l,int n)
l->next=k;
j=n-1;
for(i=1;iq=r;
for(m=1;m
p=q->next;
p->next=q;
j--;
}q=r;
p=q->next;
p->next=q;
p=k;q=r;
q->next=p;
}void main()
六、 執行結果與測試分析:
方法1:
方法2:
7、實驗心得與體會:
(1)通過這個實驗本人基本了解了鍊錶指標的使用,通過指標指向的改變實現了指向的反轉。
(2)了解了鍊錶的建立和初始化,學會了鍊錶基本結構的編寫。
(3)實驗過程中,沒有注意變數的定義,導致實驗過程中for迴圈中i變數使用的混淆不清。
希望在以後的試驗中吸取教訓,做的更好。
資料結構實驗報告v1
學號 1300310506 姓名 方日祥 實驗日期 2015.7.7 一 實驗目的 1 設計資料結構和演算法,實現按層次構造二叉樹的演算法2 掌握樹的前根序 中根序和後根序遍歷演算法二 實驗具體內容 1 實驗題目1 1 題目按層次 從上到下,從左到右的順序 輸入樹的結點,如果該結點為空,則用乙個特定...
資料結構實驗報告實驗
實驗名稱 實驗四排序 題目1 學生姓名 班級 班內序號 學號 日期 2013年12月19日 1 實驗要求 實驗目的 學習 實現 對比各種排序演算法,掌握各種排序演算法的優劣,以及各種演算法使用的情況。實驗內容 使用簡單陣列實現下面各種排序演算法,並進行比較。排序演算法 1 插入排序 2 希爾排序 3...
資料結構實驗報告
實驗報告 實驗課程 資料結構 實驗專案實驗 專業 電腦科學與技術 姓名於凡 學號 10703070328 指導教師汪林林 實驗時間 2008 12 7 重慶工學院計算機學院 實驗一線性表 1.實驗要求 掌握資料結構中線性表的基本概念。熟練掌握線性表的基本操作 建立 插入 刪除 查詢 輸出 求長度及合...