删除双向链表的头

声明双向链表类

#include "iostream"
#include "string" 
using namespace std;
class Dlink
{
	Dlink 	*head;
	Dlink 	*next;//连接下一个节点的指针 
	Dlink	*prior; //连接上一个节点的指针 
	Dlink	*p;
	Dlink	*p2;
	string 	name;
public:
	Dlink()
	{
		name="“吴香玉”";
	}
	Dlink* 	build();
	Dlink* 	D_delete(Dlink *HEAD);		
	void 	show(Dlink *HEAD);
	void	insert(Dlink *HEAD); 
}; 

string sentence[8]={"赵","兄","托","我","办","点","事","0"};

构建双向链表

Dlink* Dlink::build()//构建双向链表 
{
	int i=0;
	head=this;
	head->prior=NULL;//因为头节点是没有上一个节点的,所以将头节点的prior指向NULL 
	p=head;
	while(p->name!="0")
	{
		p2=new Dlink;
		p2->name=sentence[i];
		p2->prior=p;//将新创建的节点的prior指向上一个节点 
		p->next=p2;//旧的节点的next指向新创建的节点 
		p=p2;//p移向新的节点 
		i++;
	}
	return head;
}


输出双向链表

void Dlink::show(Dlink *HEAD)
{
	p=HEAD;
	while(p->name!="0")
	{
		cout<<p->name;
		p=p->next;
	}
	cout<<endl;	
}


删除头节点

Dlink* Dlink::D_delete(Dlink *HEAD)//删除头节点 
{
	(HEAD->next)->prior=NULL;//只需要将头节点的下一个节点的prior指针指向NULL 
	return HEAD->next;//此时头节点的下一个节点也就成了头节点 
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值