第二章 线性表-----循环链表

一.带头结点的非循环双向链表L
非空表。
在这里插入图片描述
空表:
在这里插入图片描述
空表条件:
L->priorL->next=NULL;
.带头结点的双向循环链表L。
非空表:
在这里插入图片描述
空表:
在这里插入图片描述
空表条件:
L->next
L->prior=L.
双向链表的结点描述:

```typedef struct DuLNode{
	ElemType data;//数据域
	struct DuLNode*prior;//前驱指针域。
	struct DuLNode*next;//后继指针域。 
}DuLNode,*DuLinkList          //DuLNode结点类型名,DuLinkList 指向结点的指针类型名。 

*结点构造。
在这里插入图片描述
三个域的访问形式:
p->prior;
p->data;
p->next;

二.不带头结点的非循环双向链表
非空表。
在这里插入图片描述
空表.
条件:LNULL;
三.不带头结点的双向循环链表L
非空表.
在这里插入图片描述
空表.
条件:L
NULL.

四.双向链表的操作。
1.插入操作。
主要操作步骤。

  1. 查询插入位置的前驱结点。
  2. 产生新结点。
  3. 修改链。
    在这里插入图片描述
  4. s->>next=p->next;
  5. p->next=s;
  6. s->next->prior=s;
  7. s->prior=p;
    删除操作
    主要步骤

1 查询被删结点的前驱结点ai-1;
2. 修改链
3.释放被删结点空间。

s=p->next;//记录被删结点
p->next=s->next;
s->next->prior=p;
free(s);//释放结点空间。
五.循环单链表。
1.带头结点的循环单链表L
在这里插入图片描述
空表
在这里插入图片描述
空表条件:
L->nextNUll;
**2.不带头结点的循环单链表L。
**
在这里插入图片描述
空表条件:L
NULL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值