資料結構與演算法綜合設計實驗1實驗報告

2021-03-04 09:30:32 字數 2240 閱讀 1992

電子科技大學

實驗報告

學生姓名:蘇魏明學號:

指導教師:

實驗地點: 實驗時間:

一、實驗室名稱:軟體實驗室

二、實驗專案名稱:資料結構與演算法—線性表

三、實驗學時: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 三 實驗...