學計算機程式設計的學生,在學習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;
注意事項
以上這些,都是本人的學習心得體會,可能有些地方解釋不當,希望指正