當前位置:編程學習大全網 - 源碼下載 - 合並算法源代碼

合並算法源代碼

這個鏈表包括添加、刪除、查找和修改。總的來說應該夠了。希望對妳有幫助。

修改函數名然後調用內部函數創建新函數進行合並和拆分應該不難。

模板& lttypename T & gt

根據考試成績分等級排列的投考者的名單

{

私人:

結構節點

{

測試數據;

節點*下壹個;

節點(常數T & ampt=T()):數據(T)

{ next = NULL}

};

節點*頭;

Node* getPointer(int pos)

{

Node * p =頭;

for(int I = 0;我& ltposi++)

p = p-& gt;接下來;

返回p;

}

公共:

list():head(NULL){ };

空清除()

{

而(頭!=空)

{

node * p = head-& gt;接下來;

刪除標題;

head = p;

}

}

~列表()

{

clear();

}

void insert _ front(const T & amp;t)

{

Node* p =新節點(t);

p->;下壹個=頭;

head = p;

}

無效行程()

{

Node* p =頭;

而(p!=空)

{

cout & lt& ltp->;數據& lt& lt' ';

p = p-& gt;接下來;

}

cout & lt& ltendl

}

void insert _ back(const T & amp;t)

{

Node* p =新節點(t);

if(head == 0)

head = p;

其他

{

get pointer(size()-1)-& gt;next = p;

}

}

int size()

{

int CNT = 0;

Node* p =頭;

而(p!=空)

{

cnt++;

p = p-& gt;接下來;

}

返回cnt

}

T getHead()

{

if(head == NULL)

扔“沒頭”;

返回頭-& gt;數據;

}

T getTail()

{

if(head == NULL)

扔“沒尾巴”;

Node* p =頭;

while(p->;下壹個!=空)

{

p = p-& gt;接下來;

}

返回p-& gt;數據;

}

布爾空()

{

return head = = NULL

}

int find(const T & amp;t)

{

int pos = 0;

Node* p =頭;

而(p!=空)

{

如果(p->;數據== t)

退貨位置;

pos++;

p = p-& gt;接下來;

}

return-1;

}

布爾更新數據(const T & ampo,const T & ampn)

{

int pos = find(o);

if(pos == -1)

返回false

node * p = get pointer(pos);

p->;數據= n;

返回true

}

布爾擦除(常數T & ampt)

{

int pos = find(t);

if(pos == -1)

返回false

如果(位置== 0)

{

node * p = head-& gt;接下來;

刪除標題;

head = p;

}

其他

{

node * pre = get pointer(pos-1);

node * cur = pre-& gt;接下來;

pre->;next = cur-& gt;接下來;

刪除cur

}

返回true

}

};

  • 上一篇:農業農村部派出工作組緊急應對的措施是什麽?
  • 下一篇:劉伯溫早年遊歷,遇到了躺在地上的朱元璋。為什麽能預言他成為皇帝?
  • copyright 2024編程學習大全網