閒來無事,突然想到專案中需要用到乙個單向鍊錶來實現乙個功能正好,那就用鍊錶來實現吧, 現在寫了乙個demo,也方便初學者了解。
typedef struct node
nodedata
;//建立頭節點指標,並指向空位址
nodedata
* headnode=
null
;//建立節點,這裡不用初始化,會自動判斷有沒有建立頭節點
uint8_t createnodecmd
(char *data,uint16_t datalen,uint8_t currentcmd)
else
}else
} currentnode=headnode;
doelse
}else
} currentnode=nextnode;
}while
(nextnode!=
null);
return1;
}
void
outputnodecmd
(void
) headnode=
null
;printf
("outputnodecmd==>end\n");
}
鍊錶的通用實現方式
在鍊錶的使用時,結構物件所包含的資料各不相同,所以在鍊錶的儲存需要針對不同的鍊錶物件重複編寫相應的儲存方法,能不能實現一種通用的方式,能夠針對不同的結構物件,實現統一的儲存方法?當然能。一般我們在儲存鍊錶時,都會儲存鍊錶物件結構的首位址,也就是結構指標。在計算機中,對於指標,在32位機器上,實際就是...
堆疊的鍊錶方式實現
除了公式化即陣列的實現方式,堆疊還可以用鍊錶的方式實現,這種方式對空間利用率更高。在使用鍊錶來表示堆疊時,必須確定鍊錶的哪一端對應於棧頂。如果把鍊錶的右端作為棧頂,那麼可以利用鍊錶操作 i n s e r t n x 和d e l e t e n x 來實現堆疊的插入和刪除操作,其中 n為鍊錶中的節...
單向鍊錶實現以及通過棧來實現資料的列印
程式僅供參考 鍊錶由乙個乙個的節點組成 typedef struct node node,pnode 棧的宣告 typedef struct stack stack,pstack 1 節點的建立 pnode create node int data else return p 2 在末尾插入節點 v...