模板雙向鍊錶

2021-07-31 08:58:40 字數 1577 閱讀 6905

順序表和煉表幾乎是面試必考點,前面我們已經介紹過了模板順序表(

用模板寫鍊錶主要還是為了實現**的型別通用性,以下**將實現鍊錶的增、刪、查、改、判空等操作。

#define _crt_secure_no_warnings 1

#pragma once

#include

#include

using namespace std;

template

//關於節點的模板類

struct listnode

t _data;

listnode* _next;

listnode* _prev;

};template

class list

list(const list

& l)//拷貝構造

:_head(null)

, _tail(null)

}~list()//析構函式

_head = _tail =

null;

}bool empty()//判null

node* find(const t& x)//查詢

int i =

0; node* cur = _head;

while (cur)

cur = cur->_next;

}return

null;

}size_t size()//大小

return count;

}void pushback(const t& x)//後插

else

}void popback()//後刪

else

if (_head == _tail)

else

}void pushfront(const t& x)//前插

else

}void popfront()//前刪

else

if (_head == _tail)

else

}void insert(node* pos,const t& x)//指定位置插入

cur->_next = next;

next->_prev = cur;

}void erase(node* pos)//指定位置刪除

if (_head == _tail)

else

if (prev ==

null)

else

if (next ==

null)

else

}void print()//列印

}list

& operator = (list

l)//賦值運算子過載

private:

node* _head;

node* _tail;

};//測試用例

void funteat()

int main()

列印結果如下:

雙向迴圈鍊錶模板

include include include include iostream using namespace std define maxnum 0x7fffffff define maxscore 100000 typedef struct lnode lnode,linklist 2 測鍊錶...

模板(雙向鍊錶與佇列)

雙向鍊錶與佇列 雙向鍊錶 是包含兩個指標域,乙個資料域,既有指向前驅的指標,還有指向後繼的指標,同時可以從兩個方向對鍊錶進行遍歷,訪問各個節點。雙向鍊錶 較 單鏈表 在插入和刪除節點方面更為簡單,但是所佔的空間比 單鏈表 大。佇列 的實現之所以選擇使用雙向鍊錶,是因為佇列的特點是 先進先出 如若使用...

mysql 雙向鍊錶 雙向鍊錶

雙向鍊錶是鍊錶變型,相比於單鏈表導航或者是向前和向後的兩種方式。以下是重要的術語來理解雙向鍊錶的概念 link 鍊錶的每個鏈路儲存資料稱為乙個元素。linkedlist linkedlist包含連線鏈結到名為首先第乙個鏈結,並稱為最後的最後乙個鏈結 last 雙向鍊錶表示 按照如上圖中所示,以下是要...