順序表和煉表幾乎是面試必考點,前面我們已經介紹過了模板順序表(
用模板寫鍊錶主要還是為了實現**的型別通用性,以下**將實現鍊錶的增、刪、查、改、判空等操作。
#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 雙向鍊錶表示 按照如上圖中所示,以下是要...