双链表(不带头结点)

1. **初始化链表:**
   - 通过 `DList_Init` 函数初始化双链表,不再创建头结点。

2. **判断双链表是否为空(不带头节点):**
   - 通过 `DList_Empty` 函数判断链表是否为空,检查链表头指针是否为NULL。

3. **获取链表有效数据节点个数:**
   - 使用 `DList_Length` 函数遍历链表,计算有效节点的个数,即链表的长度。

4. **创建双链表(头插法,不带头节点):**
   - 使用 `DList_Create` 函数,通过输入一系列整数,采用头插法创建双链表,结果为倒序。

5. **按位序插入:**
   - 使用 `DList_Insert` 函数,在指定位序处插入元素,支持在表头和表尾插入。

6. **通过值获取结点和位序:**
   - 使用 `DList_Get_Elem` 函数,通过给定的值在链表中查找结点,同时返回结点所在的位序。

7. **按位序删除:**
   - 使用 `DList_Del` 函数,删除指定位序的结点,支持删除表头和表尾。

8. **打印链表所有值(正序和倒序):**
   - 使用 `DList_Show` 和 `DList_Show_Back` 函数,分别从头到尾和从尾到头打印链表的所有结点的值。

9. **主函数:**
   - 主函数演示了上述功能的调用,包括链表的初始化、创建、插入、删除、查找等基本操作。

#include <stdio.h>
#include<stdlib.h>
using namespace std;

// 定义双链表结构
typedef struct DNode {
  int data; // 数据
  struct DNode *prior, *next; // 前驱和后继指针
} DNod
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值