C 實現雙向鍊錶(List)

2021-08-19 22:41:10 字數 1287 閱讀 3155

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 另外,當陣列中記憶體空間不夠時,會重新申請一塊記憶...