頭節點的資料域一般不記錄資訊。
注意區分頭結點和頭指標的區別:
1)頭指標:是指鍊錶指向第乙個節點的指標,若煉表有頭結點,則是指向頭結點的指標。
頭指標具有標識作用,所以常用頭指標冠以鍊錶名字(指標變數的名字)。
無論鍊錶是否為空,頭指標均不為空。
頭指標是鍊錶的必要元素。
2)頭結點:頭結點是為了操作的統一和方便而設立的,放在第乙個元素的結點之前,其資料域一般無意義(但也可以用來存放鍊錶的長度)。
有了頭結點,在第一元素結點前插入結點和刪除第一結點的操作與其他結點的操作就統一了。
頭結點不一定是鍊錶的必須要素。
在c語言中,可以用結構體指標來描述單鏈表
typedef struct node
node;
typedef struct node*linklist
鏈式儲存結構getelem操作的**實現
/*初始條件:鏈式線性表l已存在,1 <= i <= listlength(l) */
/*操作結構:用e返回l中第i個資料元素的值 */
status getelem( linklist l, int i, elemtype *e )
if( !p || j>i )
*e = p->data;
return ok;
}
由於這個演算法的時間複雜度取決於查詢元素的位置,即i的大小,所以,最壞情況的時間複雜度為o(n)。
這個演算法的核心思想叫做「工作指標後移」,這也是很多演算法的常用技術。
演算法競賽 day10(星系炸彈)
我們處理一件事情,遇到困難,當懷疑自己的時候,請試試想想自己曾經做這件事的初衷。17年的真題真心難啊 第一道程式程式設計即日期問題,真的把我難住了,即便看了答案也懵懵懂懂的,雖然整體不是太難理解,但在程式設計時的很多知識點都是我的盲區,所以我只能暫時將他放一放,先來練練藍橋杯其他幾個年份的日期類問題...
day10 資料結構實驗之查詢五 平方之雜湊表
time limit 400 ms memory limit 65536 kib problem description 給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h key key p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增量di i 2...
資料結構和演算法 10 剪枝
一 interview 面試題 1.1 leetcode 51 52 n queens n皇后問題 題目說明 西洋象棋,如何將 n 個皇后放置在 n x n 的棋盤上,並且使得皇后之間不能相互攻擊 result 深度優先遍歷 defdfs cols,na,pie,n param cols 列表,儲存...