程式碼結構體:
typedef struct node {
ElemType exp;
ElemType coef;
struct node *next; // 錯誤寫法:struct node next; (缺少 *)
} linklist;
原程式碼寫成 struct node next;,**缺少指標符號 \***,導致結構體內直接包含一個完整的 node 實例,形成無限遞迴定義,編譯器會報錯或產生極大結構體。
typedef struct Node {
int coef; // 係數
int exp; // 指數
struct Node *next; // 必須是指標
} Node, *LinkList;
creat() 參數應為 LinkList *L (二級指標) 或回傳 LinkList,否則無法修改主程式的頭指標。jiafa() 合併邏輯需處理 p->exp == q->exp 係數相加為 0 時刪除節點,且尾部剩餘節點追加。deletelinklist() 釋放順序錯誤:應先存 next 再 free 當前。for(i=0;i 不完整,需修正。creat/insert/jiafa 使用二級指標或回傳值正確維護頭指標。print 測試每步輸出,逐步驗證。鏈表核心在於 **指標操作正確**,結構體定義一旦出錯,後續所有邏輯都會崩潰。從定義開始仔細檢查每一個 *。