電子科技大學
實驗報告
學生姓名:蘇魏明學號:
指導教師:
實驗地點: 實驗時間:
一、實驗室名稱:軟體實驗室
二、實驗專案名稱:資料結構與演算法—線性表
三、實驗學時:4
四、實驗原理:
在鏈式儲存結構中,儲存資料結構的儲存空間可以不連續,各資料結點的儲存順序與資料元素之間的邏輯關係可以不一致,而資料元素之間的邏輯關係是由指標域來確定的。鏈式儲存方式即可以用於表示線性結構,也可用於表示非線性結構。一般來說,**性表的鏈式儲存結構中,各資料結點的儲存符號是不連續的,並且各結點在儲存空間中的位置關係與邏輯關係也不一致。
對於線性鍊錶,可以從頭指標開始,沿各結點的指標掃瞄到鍊錶中的所有結點。
線性表的鏈結儲存中,為了方便在表頭插入和刪除結點的操作,經常在表頭結點(儲存第乙個元素的結點)的前面增加乙個結點,稱之為頭結點或表頭附加結點。這樣原來的表頭指標由指向第乙個元素的結點改為指向頭結點,頭結點的資料域為空,頭結點的指標域指向第乙個元素的結點。
五、實驗目的:
本實驗通過定義單向鍊錶的資料結構,設計建立鍊錶、插入結點、遍歷結點等基本演算法,使學生掌握線性鍊錶的基本特徵和演算法,並能熟練編寫c程式,培養理論聯絡實際和自主學習的能力,提高程式設計水平。
六、實驗內容:
使用資料結構typedef struct node elemtype;
typedef struct node listnode, *listnodeptr;
typedef listnodeptr list, *listptr;
// 建立單鏈表: 設線性表n個元素已存放在陣列elem中,動態建立乙個單鏈表l
// 函式返回值為整型:0表示建立成功,1表示建立失敗
int list_create(listptr l, elemtype elem, int n)
p->data.age = elem[i].age;
strcpy(p->data.stuname, elem[i].stuname);
p->next = q->next;
q->next = p;
i = i - 1;
}(*l) = q;
return result;
}void list_destroy(listptr l)
}void list_clear(listptr l)
// 單鏈表中結點插入演算法: 在單鏈表l中的第pos個結點前插入值為elem的資料元素
// 插入結果是新結點佔據第pos個位置,原pos位置結點變為第pos+1個結點
// 函式返回值為整型:0表示插入成功,1表示插入失敗
int list_insert(listptr l, int pos, elemtype elem)
if(p && i == pos-1)
}return result;
}// 刪除單鏈表中結點: 刪除單鏈表l中的第pos個結點資料元素
// 函式返回值為整型:0表示刪除成功,1表示刪除失敗
int list_remove(listptr l, int pos)
if(p && i == pos-1)
return result;
}// 合併單鏈表操作,合併後的鍊錶儲存在鍊錶la中;
// 合併之後按年齡遞減也就是年月日遞增的順序,排列學生資訊;
void list_merge(listptr la, listptr lb)
if(pa && pb)
else
}while(pa && pb)
else
}while(pb)
while(pa)
printf("合併成功!\n");
}void show_list(listnodeptr l)
while(p)
}int read_file(char * fname, char name[max**t][11], __int64* age)
else
memset(age, 0, max**t *8);
memset(name, 0, max**t * (10 + 1));
while(!feof(pfile
fscanf(pfile,"%s",charage);
fscanf(pfile,"\t%s\n",name[scount]);
age[scount] = _atoi64(charage);
scount++;
}fclose(pfile);
演算法與資料結構
演算法 是按部就班地解決某個問題的方法,是對特定問題求解步驟的一種描述。偽碼語言是一種包括高階程式語言的3種基本控制結構 順序 選擇和迴圈 和自然語言成分的 物件導向 的語言。演算法的特徵 1 可行性 一是演算法中的每個步驟必須是能實現的 二是演算法執行的結果要能達到預期的目的。2 確定性 演算法的...
資料結構與演算法
課程設計報告 目錄一 問題描述1 二 資料結構1 三 演算法設計思想及流程圖1 四 源程式2 五 測試情況6 參考文獻6 一 問題描述 計算表示式的值 問題描述 對於給定的乙個表示式,表示式中可以包括常數 算術執行符和括號,編寫程式計算表示式的值。基本要求 從鍵盤輸入乙個正確的中綴表示式,將中綴表示...
演算法與資料結構實驗報告
學生實驗報告冊 課程名稱 演算法與資料結構 實驗專案名稱 順序表實驗學時 2 同組學生姓名實驗地點 工科樓a205 實驗日期 2013年10月16日實驗成績 批改教師批改時間 實驗1 順序表 一 實驗目的和要求 掌握順序表的定位 插入 刪除等操作。二 實驗儀器和裝置 turbo c 2.0 三 實驗...