4.用c++實現乙個雙向鍊錶
struct node
;
逆置乙個單鏈表
逆置雙向鍊錶
class list
;
提示的內容已經很明細了,注意細節。
#include using std::cout;
using std::endl;
struct node
~node()
int _data;
node *_pre;
node *_next;
};class list
void push_front(const int &data)
void push_back(const int &data)
void pop_front()
else
}void pop_back()
else
}bool find(int data)
pnode = pnode->_next;
}return false;
}else
}void insert(int pos, const int &data)
node *pnode = _head->_next;
while(pos)
node *newnode = new node(data);
newnode->_pre = pnode;
newnode->_next = pnode->_next;
pnode->_next = newnode;
pnode->_next = newnode;
++_size;
}void display() const
cout << endl;
}else
}void erase(const int &data)
pnode = pnode->_next;
}cout << "cannot find data!" << endl;
}else
}~list()
delete _head;
_head = nullptr;
}private:
node *_head; //頭指標
node *_tail; //尾指標
int _size; //鍊錶大小
};int main()
結果:
node(int = 0, node * = nullptr, node * = nullptr)
node(int = 0, node * = nullptr, node * = nullptr)
list()
在鍊錶的頭部插入三個元素1,2,3:
node(int = 0, node * = nullptr, node * = nullptr)
node(int = 0, node * = nullptr, node * = nullptr)
node(int = 0, node * = nullptr, node * = nullptr)
列印鍊錶
3 2 1
在鍊錶的尾部插入三個元素6,7,8
node(int = 0, node * = nullptr, node * = nullptr)
node(int = 0, node * = nullptr, node * = nullptr)
node(int = 0, node * = nullptr, node * = nullptr)
列印鍊錶
3 2 1 6 7 8
在鍊錶的頭部進行一次刪除
~node()
列印鍊錶
2 1 6 7 8
在鍊錶的尾部進行一次刪除
~node()
列印鍊錶
2 1 6 7
在鍊錶中查詢元素6:
flag = node(int = 0, node * = nullptr, node * = nullptr)
1在鍊錶中的中間進行插入,insert(3,100) :
node(int = 0, node * = nullptr, node * = nullptr)
列印鍊錶
2 1 6 7 100
刪除鍊錶中元素為6的資料
node(int = 0, node * = nullptr, node * = nullptr)
~node()
列印鍊錶
2 1 7 100
~list()
~node()
~node()
~node()
~node()
~node()
~node()
雙向鍊錶(C實現)
list.h ifndef list h define list h typedef struct node node typedef struct list list initlist int insertnode list l,void data,int size int deletenode ...
雙向鍊錶(c 實現)
雙向鍊錶與單鏈表有許多的相似之處,但是也有不同之處。雙向鍊錶與單鏈表主要的不同在於 雙向鍊錶可以從兩個方向進行遍歷,但是單鏈表只能從頭節點遍歷到尾節點,不能從尾節點遍歷到頭節點,對於鍊錶中一些插入和刪除等操作,雙向鍊錶較單鏈表更為簡單些。所以,雙向鍊錶有其存在的特殊意義。下面是通過c 來實現雙向鍊錶...
雙向鍊錶 C 實現
雙向鍊錶在類中的實現 include include includeusing namespace std typedef int datatype struct node node pnext node ppre int data class list list const list l else...