// // Created by dongl on 22-9-20. // #ifndef CPP_LINKLIST_H #define CPP_LINKLIST_H #include #endif //CPP_LINKLIST_H template class LNode{ public: U data; LNode *next = nullptr; LNode(): next(nullptr){ } void update(U el){ data = el; } }; template class List{ LNode *lNode = new LNode; unsigned int _length = 0; LNode* _begin = lNode; public: List(){ } void add(T el){ lNode = lNode->next = new LNode; lNode->data = el; _length++; lNode->next = new LNode; }; int get(T index){ int el; LNode* node = _begin; for (int i = 0; i < index; ++i) { node = node->next; el = node->data; } return el; } void remove(unsigned int index){ if(index > _length+1) std::cerr << "超越范围之外:" << __FILE__ << ":" <<__LINE__ <* begin = _begin; for (int i = 1; i < index; ++i) { begin = _begin->next; } LNode* node = begin->next; begin->next = begin->next->next; delete node; _length--; } void update(int index, T el){ LNode* node; for (int i = 0; i < index; ++i) { node = _begin->next; } node->data = el; } int length(){ return _length; } LNode*& begin(){ return _begin->next; } };