华清远见作业第十六天

思维导图:

 双向循环链表头插入:

代码:

Doublelist insert_head(Doublelist head,datatype element)
{
	//创建新节点s
	Doublelist s=create_node();
	if(NULL==s)
	{
		return head;
	}
	s->data=element;//数据存储
	//判断链表是否为空
	if(NULL==head)
	{
		head=s;
		return head;
	}
	else
	{	
		Doublelist rear=head->priv;
		//开始插入
		s->next=head;//把原来的头放到s的后面
		head->priv=s;//原来的head前指针指向s
		head=s;//s成为新的头
		//形成两个环
		head->priv=rear;
		rear->next=head;
		return head;
		
	}
	
}

画图:

 运行效果:

双向循环链表尾插入:

代码:

//尾插
Doublelist insert_rear(Doublelist head,datatype element)
{
	//创建新节点s
	Doublelist s=create_node();
	if(NULL==s)
	{
		return head;
	}
	s->data=element;//数据存储
	//判断链表是否为空
	if(NULL==head)
	{
		head=s;
		return head;
	}
	else
	{	
		Doublelist p=head;		
		//找最后一个节点
		while(p->next!=head)
		{
			p=p->next;
		}
		//开始插入
		p->next=s;//把数据存放s放到的最后一位的后面
		s->priv=p;//s的前一个是原来的最后一个成为新的最后一个s
		s->next=head;
		head->priv=s;
		return head;
		
	}
	
}

画图:

 运行效果:

双向循环链表头删除

代码:

//头删除
Doublelist del_head(Doublelist head)
{
	if(NULL==head)
	{
		return head;
	}
	 if(head->next==head)
	{
		free(head);
		head=NULL;
		return head;
	}
	else
	{
		
		Doublelist rear=head->priv;//定位到最后一个节点,并存储
		Doublelist del=head;//要删除的头标志到del
		head=head->next;//头节点变成原来的下一个

		free(del);//释放del
		del=NULL;//防止del
		//形成环
		rear->next=head;
		head->priv=rear;
		

		return head;
		
	
	}

}

画图:

 运行效果:

双向循环链表尾删除

代码:

//尾巴删除
Doublelist del_rear(Doublelist head)
{
	if(NULL==head)
	{
		return head;
	}
	else if(head->next==NULL)
	{
		free(head);
		head=NULL;
		return head;
	}
	else
	{
		Doublelist p=head;		
		//找倒数第二个节点
		while(p->next->next!=head)
		{
			p=p->next;
		}
		//标记倒数第一个
		Doublelist del=p->next;
		free(del);//释放最后一个
		del=NULL;//防止野指针
		p->next=head;//新的最后一个指向空
		head->priv=p;
		return head;
			
	}
}

画图:

运行效果:

 

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-26 13:50:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-26 13:50:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-26 13:50:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-26 13:50:02       20 阅读

热门阅读

  1. 【算法链表】单链表算法总结

    2023-12-26 13:50:02       44 阅读
  2. Golang硬件控制:将软件力量扩展到物理世界

    2023-12-26 13:50:02       40 阅读
  3. Python与ArcGIS系列(十七)GDAL之shp转geojson

    2023-12-26 13:50:02       40 阅读
  4. HTML网站基础

    2023-12-26 13:50:02       39 阅读
  5. 【MATLAB】 RGB和YCbCr互转

    2023-12-26 13:50:02       41 阅读