第四章鏈結串列

2023-01-06 10:09:04 字數 2263 閱讀 5975

資料儲存方式分為靜態資料結構及動態資料結構,而鏈結串列為動態記憶體配置之核心。如下圖,鏈結串列由乙個以上的節點(node)組成,每個節點至少會有兩個字段,分別存放資料及指標,好像一節火車箱,資料欄存放資料,指標欄存放接合車子間的卡榫。

動態記憶體配置是指在執行階段才要求系統配置一塊記憶體空間,其中包括兩個運運算元

(1) 運運算元new

利用new建立物件時會向系統要一塊記憶體空間,並回傳該記憶體的起始位置,若記憶體空間不足,則記憶體配置失敗並傳回乙個空指標(null),宣告方式如下例:

double * fptr = new double;

若為陣列如下:

double * fptr = new double [n];

(2) 運運算元delete

delete 可將空間釋放並歸還給系統。如下例:

delete fptr;

或當陣列時

delete fptr ;

考題:請說明鏈結串列基本原理

如下圖為單向鏈結串列,其欄位至少包括資料字段及鏈結字段。

今嘗試以c++處理學生成績問題如下表

程式碼如下

#include

using std::cout;

using std::cin;

using std::endl;

class linkedlist

;int main()

cout<<"the students grade "< cout<<"no\tname\tgrade\n< ptr = delptr;//move ptr to the first item

while (ptr != null)

return 0;

}程式執行原理

(a)資料加入

1. 建立新節點

2. ptr = delptr

3. 建立新節點

4. 連線兩個節點

5. ptr = ptr->nptr;

6. 重複3、4及5直到完成輸入

考題:1. 請以鏈結串列建立乙個程式,程式能輸入學生座號、姓名及成績,同時還能夠於鏈結串列結束時自動將記憶體排除。

2. 說明上題鏈結串列之原理。

依據所刪除的節點位置會有三種不同情形:

(1) 刪除串列第乙個節點

top = head;

head=head->next;

delete top;

(2) 刪除串列內的中間節點

y = ptr->next

ptr->next = y->next;

delete y;

(3) 刪除串列內的最後乙個節點

ptr->next = tail;

ptr->next=null:

delete tail;

考題:請說明刪除鏈結串列節點有哪三種情形,試以程式及圖形說明之。

(4) 範例說明

本程式於輸入-1時就可以刪除成績,輸入其他整數資料時會進行資料比對。

/*[示範]:利用鏈結串列來建立、刪除及列印學生成績*/

#include

#include

#include

#include //使用亂數的表頭檔

using namespace std;

struct list

;list * createlist(list *, int [2], char * );

void delnode(list *);

list del_ptr(list *,list *);

void print(list *);

int main()

,,,,,,,,,,,};

srand((unsigned)time(null));//以時間為亂數的種子

cout<<"座號成績座號成績座號成績座號成績"< cout<<< for(int i=0;i<12;i++)

for( i=0;i<3;i++)

//建立串列首

list *head=new list;

if(!head)

//建立鏈結串列

ptr=createlist(head,data,namedata);

//執行成績刪除

delnode(head);

//列印剩餘串列資料

print(head);

return 0;

}//建立鏈結串列副程式

list * createlist(list * head, int data[2], char * namedata)

第四章小結

第4章非線性方程與非線性方程組的迭代解法 學習小結 一 本章學習體會 在之前的學習中我們基本接觸的都是線性方程和方程組的求解,對於非線性方程和非線性方程組的求解接觸很少。因為在實際應用中非線性方程能接觸解析表示式的很少,對於大多數非線性方程,只能用數值法求解出它的根的近似值。在本章介紹的求解非線性方...

第四章總結

實習總結 2011年02月21日是我踏入中國平安保險公司潮州中心支公司的第一天。我懷著乙份激動和好奇的心情來到中國平安保險財產股份 開始了大學以來的第二次實習實踐活動。現在回想起來,雖然只有短短的乙個半個月的實踐期,但在這段時間裡的的實習中我學到了很多在課堂上學不到的知識,讓我受益匪淺 並且接觸了很...

第四章作業

正確答案 借 長期股權投資 成本 2 010 貸 銀行存款2 010 2 20 7年4月1日,丙公司宣告分派20 6年度的現金股利100萬元。正確答案 借 應收股利20 貸 長期股權投資 成本 20 3 20 7年5月10 日,甲公司收到丙公司分派的20 6年度現金股利。正確答案 借 銀行存款20 ...