#include <iostream>
using namespace std;
// 单链表的实现
template<typename _Ty>
class SingleList
{
public:
SingleList();
~SingleList();
private:
typedef struct tagNode // 节点定义
{
_Ty _elem; // 值域
struct tagNode* pNext; // 指针域
}NODE,*PNODE;
tagNode* m_pHead; // 节点头
tagNode* m_pTitle; // 游标 [永远指向的的是最后一个节点]
int m_size; // 链表节点数
public:
// 在链表尾部追加元素
bool append(_Ty elem);
// 在链表任意点插入元素
bool insert(int pos,_Ty elem);
// 获取链表头元素
_Ty front();
// 获取链表尾部元素
_Ty last();
// 获取链表长度
int length(){return m_size};
// 删除链表指定节点
bool deletepos(int pos,_Ty& res);
// 删除链表所有元素
bool deleteall();
// 链表是否为空
bool empty();
// 遍历元素
void traverse();
};
template<typename _Ty>
SingleList<_Ty>::SingleList()
{
m_pHead = (tagNode *)malloc(sizeof(tagNode));
m_pTitle = m_pHead;
m_size = 0;
}
template<typename _Ty>
SingleList<_Ty>::~SingleList()
{
if(m_pHead->pNext != NULL)
{
C++ 实现单链表
最新推荐文章于 2024-09-18 22:30:23 发布
本文详细探讨了如何使用C++来实现单链表,包括节点定义、插入、删除等基本操作。通过泛型模板,实现了链表的类型无关性,增强了代码的复用性。
摘要由CSDN通过智能技术生成