list是c++容器類中的「順序儲存結構」所包含的一種結構。list是非連續儲存結構,具有雙鏈表結構,支援前向/後向遍歷,且支援高效的隨機刪除/插入。
實現**如下:
**list.h**
#pragma once
#include
#include
#include
using
namespace
std;
typedef
int datatype;
struct listnode
};
**test.cpp**
#define _crt_secure_no_warnings 1
#include
"list.h"
class list
list(const list
& l)
:_head(new node(datatype()))
}list
& operator=(const list
& l)
return
*this;
}~list()
delete _head;
_head =
null;
}void pushback(datatype x)
void pushfront(datatype x)
void popback()
void popfront()
node* find(datatype x)
to_find = to_find->_next;
}return
null;
}void insert(node* pos, datatype x)
void erase(node* pos)
void print() const
cout << endl;
node* pos = _head->_prev;
while (pos != _head)
cout <<
"_head"
<< endl;
}private:
node* _head;
};void testlist()
int main()
List雙向鍊錶
include 宣告 list int mylist 定義 mylist.push front 1 頭部插入元素 mylist.push back 2 尾部插入元素 pop front 移除頭部元素 pop back 移除尾部元素 list int iterator lter 迭代器定義 iter ...
List 雙向鍊錶
list是一種雙向鍊錶結構,可以從第乙個元素開始刪除 插入,也可以從最後乙個元素刪除 插入,下面介紹一下 list 中常用的幾個函式 一 list 中的 begin 和 end 函式 和其他幾種資料結構差不多,都是用來從第乙個元素,訪問到最後乙個元素,返回的是當前指標 listl l.begin 輸...
c 實現(list)帶頭結點的雙向鍊錶
vector 1.vector資料結構 vector和陣列類似,擁有一段連續的記憶體空間,並且起始位址不變。因此能高效的進行隨機訪問,時間複雜度為o 1 但因為記憶體空間是連續的,所以在進行插入和刪除操作時,會造成記憶體塊的拷貝,時間複雜度為o n 另外,當陣列中記憶體空間不夠時,會重新申請一塊記憶...