链表(二)

接着链表来说下对链表的插入和删除的操作
在链表头部插入新节点:这个比较简单的,就是让你的新节点指向你的头节点就可以完成这个操作啦。
void InsertHead(node*&head)
{
	node*s = NULL;
	s = new node;
	int a;
	cin >> a;
	s->data = a;
	s->next = head;
	head = s;
}	
链表尾部插入新节点:要在尾部插入一个节点呢,首先要先找到最后一个节点,然后就弄个新节点,让尾节点指向这个新节点就可以啦
void InsertTail(node *head)
{
	node*s = new node;
	node*p = head;
	while (p->next != NULL)//这个循环找最后一个节点
	{
		p = p->next;
	}
	int a;
	cin >> a;
	s->data = a;
	p->next = s;
}
某个节点p的前面插入新节点:要把你所需要p节点和p的上一个节点找到,然后你就让p的上一个节点指向你的新节点,你的新节点就指向你的p节点机可以啦。
void InsertBefore(node*head, node*p)
{	
	int a;
	cin >> a;
	node *q;
	q = head;
	node *q1 = new node;
	q1->data = a;
	while (q->next != p)
	{
		q = q->next;
	}
	q1->next = p;
	q->next = q1;
}
删除头节点:这个比较简单,让你的头节点的下一个节点赋值为头节点,然后把头节点delete就可以啦。
void DelHead(node*&head)
{
	node* p;
	p = head;
	head = head->next;
	delete p;
}
删除某个节点p:这个的话,如果会在p的前面插入新节点,那么删除应该也是会的啦,也就是让p的上个节点指向p的下一个节点,然后把p这个节点删除掉就可以啦。
void DelNode(node* head, node* p)
{
	node* q=head;
	//node* q1;
	while (q->next!=p)
	{
		q = q->next;
	}
	q->next = p->next;
	delete p;	
}
以上的内容没有没有创建链表和链表的显示,不过可以参照一下“链表”这篇文章,直接调用以上的方法就可以了啦。效果图就不显示了,自己试试就可以啦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值