C語言帶頭節點的單鏈表的初始化和輸入值的操作?

學計算機程式設計的學生,在學習C語言帶頭節點的單鏈表的初始化和輸入值的操作,可能知道怎麼做,但是具體讓他們來寫實現程式碼時,就感覺心有餘,而力不足。所以本人寫一下關於這些操作的具體實現程式碼,希望可以讓廣大愛好程式設計的朋友,得到幫助。

工具/原料

code:blocks

vc6.0

方法/步驟

首先,我們假設這個帶頭節點的單鏈表的資料結構是這樣的:

typedef struct LNode

{

float coef;

int exp;

struct LNode *next;

}LNode,*LinkList;

typedef struct

{

LinkList Head;

LinkList Curr;

LinkList Tail;

}Link;

然後,下面是它的初始化的實現程式碼

status InitLink(Link &L)

{

L.Head=L.Tail=(LNode*)malloc(sizeof(LNode));//這裡注意是要申請一個結構體節點的空間。

if(!L.Head) return ERROR;

L.Head->exp=0,L.Head->coef=0;//由於是頭結點,所以這個節點裡面的資料是沒有實際意義的,所以為了方便都令為0

L.Head->next=NULL;//這裡最好這樣寫,這樣可以防止指標亂指

return OK;

}

最後是輸入值得操作

status GetElem(Link &L,float c,int e)

{

L.Curr=L.Tail->next;//這裡的尾指標我們是從頭結點開始的,所以每次呼叫函式都要先讓尾指標指向下一個。

L.Curr=(LNode*)malloc(sizeof(LNode));//解釋同上

if(!L.Curr) return ERROR;

L.Curr->coef=c,L.Curr->exp=e;

L.Curr->next=NULL;//解釋同上

L.Tail=L.Curr;//增加了一個節點,尾指標要下移動一個

return OK;

注意事項

以上這些,都是本人的學習心得體會,可能有些地方解釋不當,希望指正

計算機, 程式碼, 語言, 節點, 單鏈表,
相關問題答案