這一系列部落格的目的在於複習鞏固資料結構的基礎知識,為考研面試筆試做準備,所以重在原理,**實踐不是重點。
參考書籍有嚴蔚敏老師的《資料結構(c語言版)》,《c/c++資料結構與演算法速學速用大辭典》
線性表迴圈鍊錶
雙向鍊錶
//將s結點插入p結點之前
s = (dlistnode*)malloc(sizeof(dlistnode));
if(!s)
return-1;
s->
data
= e;
s->prior = p->prior;
p->prior->next = s;
s->next = p;
p->prior = s;
//刪除p結點
p->prior->next = p->next;
p->next->prior = p->prior;
free(p);
出局0人 序號
出局0人 數列
出局1人 序號
出局1人 數列00
(n-1)-m+101
1(n-1)-m+21…
………m-1
m-1mm0
mm+1
m+11
m+1………
…xxx-mx…
………n-2
n-2(n-2)-m
n-2n-1
n-1(n-1)-m
n-1
假設第x個數是n個數的解,第x-m個數(n-1)時
f(n) = ( f(n-1) + m ) % n;//考慮到迴圈,取模
int f[n];//f[i]表示剩餘i個人的情況
f[1] = 0;//只剩乙個數,這個數序號為0,也就是遊戲順利的那個數
for(i=2; i<=n; i++)
f[i] = ( f[i-1] + m ) % i;//剩餘i個數的情況是對i取餘
cout<<"winner:"
<
資料結構學習 線性表
線性表一般分為順序結構和鏈式結構。順序表裡面元素的位址是連續的,如陣列 鍊錶裡面節點的位址不是連續的,是通過指標連起來的,如單鏈表 順序結構 優點 易於查詢,索引快 list n 這樣的操作,o 1 複雜度。缺點 擴充套件性弱,不易刪除 插入,這兩項操作均是o n 的時間複雜度 鍊錶結構 優點 擴充...
資料結構學習 線性表
考試前複習下資料結構,把一些知識點整理在這!主要參考了殷人昆主編的 資料結構 用物件導向方法與c 語言描述 這本書,以及中山大學劉聰老師的課件內容!鍊錶雙鏈表 線性表 linear list 是由n n 0 個資料元素 結點 a 0 a 1 a 2 a n 1 組成的有限序列。維基百科 線性表是乙個...
資料結構學習 線性表
鏈式儲存用指標表示邏輯結構,可以很方便的表示各種邏輯結構。順序儲存結構中,插入和刪除結點需要大量的移動元素,效率很低。順序儲存結構既可以順序訪問也可以隨機訪問,而鏈式結構只可以順序訪問。對n個元素進行排序的時間複雜最快也要o n 初始有序 通常是o nlog2n 或o n 2 單鏈表只能順序查詢插入...