以上為鏈棧程序(無錯),但為什麼不能將直接用struct node 定義一個top指針,而要用一個結構體裡面放top指針。如果直接用struct node 定義一個top指針那麼入棧部分將出錯,為何?或者說這兩者區別在哪?
** 樓主,注意看你設計的數據結構,如果你用struct node *top 直接指向頭的話,那麼這個top包含2個內容, 1: int data ; 2: struct node *next ;
這樣的話在你操作的時候,不是很方便,你這樣的top自己本身就是一個存儲數據的結構了,如果你只是把第一個節點出棧的話,那你的頭節點就不好操作了。
相反,你用一個 struct link{struct node *top} top; 的話,你相當於給這個鏈表創建了一個手柄,可以操作其他的數據的,靈活性高好多。假如你要
刪除第一個元素,此時top指向第一個元素,而他本身不是第一個元素,這樣就好操作多了!