自己动手实现了单链表,链表的节点中能够存储变长数据,在实现中借用了STL的vector来实现。并且实现了一些单链表的简单的接口操作,如果您感觉代码有任何的问题,欢迎大家能够批评指正,共同学习进步。
下面是头文件的代码:
#ifndef CHUNKLIST_H_
#define CHUNKLIST_H_
#include <vector>
#include <iostream>
#include <iterator>
#define MAXLEN 1000
template<typename T>
class Chunklist
{
private:
struct LNode
{
std::vector<T> value;
LNode* next;
};
LNode* header;
public:
Chunklist(): header(nullptr){}
~Chunklist()
{
while (header != nullptr)
{
LNode* tempNode = header->next;
delete header;
header = tempNode;
}
}
//insert one node into the list,followed by the chunksize
void insertNode(T* nodeData,size_t chunksize);
//get the header of the list so we can traverse the list
LNode* getHeader();
//deleteNode
bool deleteNode(LNode* delNOde);
//find the first node have the keydata in the list
LNode* searchNode(T keydata)
{