以下都是對單鏈表一些簡單的應用和對一些簡單問題的解決方案。
**如下:
#define _crt_secure_no_warnings //vs2013中需要加的乙個巨集!
#include#include#includetypedef int datetype;
typedef struct slistnode
slistnode;
列印節點,**如下:
void printfslist(slistnode *&phead) //列印節點
while (newhead) }
2.建立節點,**如下:
slistnode* _buynode(datetype x) //建立節點
3.尾插法,**如下:
void pushback(slistnode *&phead, datetype x) //尾插
else
tail->next = _buynode(x); }}
測試**如下:
4.尾出法,**如下:
void popback(slistnode *&phead) //尾出
else if (phead->next == null)
else
free(cur);
prev->next = null; }}
測試程式如下:
5.頭插和頭出,**如下:
void pushfront(slistnode *&phead, datetype x) //頭插
void popfront(slistnode *&phead) //頭出
else }
測試程式如下:
6.找出某個節點並返回節點的位址
slistnode * find(slistnode *& phead, datetype x) //找出某個節點並返回節點的位址
newhead = newhead->next;
} return null;
}
本文出自 「零點時光」 部落格,請務必保留此出處 一些單鏈表的東西
單鏈表的遍歷 中間 尾插入 q new node x q next p next p next q 一句話 p next new node x,p next null 頭插入 node q new node x q next head head q 一句話 head new node x,head ...
單鏈表的一些見解
關於q next p next和q p next的理解 假令 q為結點1,p為結點2,即q的物理儲存位址為00293590,q中指標域中儲存位址為00293558,q中資料域為11 即p的物理儲存位址為00293558,q中指標域中儲存位址為00293448,q中資料域為12 q next p ne...
單鏈表的一些操作
1 有頭結點方便對首元資料元素的刪除,插入操作。不帶頭結點要判斷是不是作用在首元,是就得改變頭指標指向。2 頭結點資料域可以存表長。head data k 1 取倒數第k個元素。兩遍。走一遍,定義兩個指標,先走乙個,使兩個之間相差k個位置,再一起移動,走得快的的走到空了,走得慢的的資料域就是指定元素...