資料結構 單鏈表功能實現及面試題整理

2021-08-19 01:43:47 字數 2384 閱讀 7773

序:

呼叫函式時,其實就是把變數的位址傳給函式,但是函式只能修改指標指向變數的值,不能修改指標的指向

如果需要修改指標的指向就必須在傳參時傳指標的指標!

比如:單鏈表在遍歷,查詢時就不需要改變指標指向,插入刪除就必須改變指標指向

為了保證**質量,我將所有的函式都使用指標的指標形式

先附上執行結果:

else //鍊錶不為空時,找到最後乙個再插入

pcur->_pnext = buyslistnode(data); }}

void slistpopback(pnode* phead)

else if (null == (*phead)->_pnext)//只有乙個節點

else//節點超過乙個

ptail->_pnext = null;

free(pcur);

pcur = null; }}

void slistpushfront(pnode* phead, datatype data)

void slistpopfront(pnode* phead)

else }

void slistinsert(pnode* phead, pnode pos, datatype data)//將值為data的節點插入pos的後面

else }

int slistempty(pnode* phead)

else }

int slistsize(pnode* phead, datatype data)//找到值為data的節點個數

while (pcur)

pcur = pcur->_pnext;

} return count;

}void slisterase(pnode* phead, pnode pos)

else }

pnode slistfind(pnode* phead, datatype data)

while (pcur) }

return null;

}void slistdestroy(pnode* phead)

else }

}test.c

#include"listnode.h"

int main()

資料結構 單鏈表基礎面試題 上

1 單鏈表的逆置 node reverse node s1 2 移除鍊錶的元素 輸入 1 2 6 3 4 5 6 val 6 輸出 1 2 3 4 5 node removeelements node head,int val else free cur cur next prev cur cur ...

資料結構之單鏈表(二)面試題

單鏈表的反轉 singlelinkedlistnode prev head.next singlelinkedlistnode pcur prev.next while prev.next null pcur是要操作的節點,prev是其前置節點,初始為prev為第乙個有效節點,pcur為第二個有效節...

單鏈表的反轉(資料結構 面試題)

編寫乙個演算法來顛倒乙個鍊錶,該鍊錶的第乙個結點由first指向。不要複製列表元素 而是重置鏈結和指標,使得first指向原來的最後乙個結點,並且結點之間的所有鏈結都反向。思路 因為題目中明確說明不能複製元素,所以通過複製來重置另外乙個鍊錶的想法被終止。我們想到,如果要改變連線的指向,又能夠要使鍊錶...