数据结构之C++实现无头节点链表(List)(无主函数)

本文详细介绍了如何使用C++实现无头节点链表,包括链表的构造、插入、删除、查找、排序和反转等基本操作。通过具体的代码实现,帮助读者理解链表的数据结构及其应用。
摘要由CSDN通过智能技术生成
#include<iostream>
using namespace std;
//C++实现无头节点链表
class Node
{
public:
	Node(int v):m_value(v),m_next(NULL){}
	Node():m_next(NULL){}
	int m_value;
	Node *m_next;
};
class List
{
public:
	List():m_pHead(NULL),m_pTail(NULL){}
	~List(){Clear();}
	void InsertHead(int v);//头插
	void InsertTail(int v);//尾插
	void InsertIvalue(int i,int v);//按位置插入
	void DeleteHead();//头删
	void DeleteTail();//尾删
	void DeleteIvalue(int i);//按值删除
	Node *GetIP(int i);//获取链表中某个节点中的值是链表中的第几个
	int GetLength();//求长度
	void Print();//打印函数
	bool IsEmpty(){return m_pHead == NULL ? true : false;}//判空
	void Sort();//排序
	void Reverse();//逆置
	void Clear();//清除
private:
	Node *m_pHead;
	Node *m_pTail;
};
void List::Clear()
{
	//方法1 /*Node *p=m_pHead;
		while(p!=NULL)
		{
			p=p->m_next;
			DeleteHead();	
		}
		delete p;
		p=NULL;*/
	//方法2	
                Node *p=m_pHead;
		Node *q=p;
		while(p!=NULL)
		{
			p=p->m_next;
			delete q;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值