双向循环链表结构如下:

下面我们来实现一下代码:
list.h
#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <assert.h>
// 2、带头双向循环链表增删查改实现
typedef int LTDataType;
typedef struct ListNode
{
LTDataType _data;
struct ListNode* _next;
struct ListNode* _prev;
}ListNode;
typedef struct List
{
ListNode* _head;
}List;
void ListInit(List* plist);
void ListDestory(List* plist);
ListNode* BuyListNode(LTDataType x);
void ListPushBack(List* plist, LTDataType x);
void ListPopBack(List* plist);
void ListPushFront(List* plist, LTDataType x);
void ListPopFront(List* plist);
ListNode* ListFind(List* plist, LTDataType x);
// 在pos的前面进行插入
void ListInsert(ListNode* pos, LTDataType x);
// 删除pos位置的节点
void ListErase(ListNode* pos);
void ListRemove(List* plist, LTDataType x);
void ListPrint(List* plist);
void Test();

本文介绍了双向循环链表的基本结构,并提供了相应的代码实现,包括头文件list.h、实现文件list.c以及测试文件test.c,详细展示了如何操作这种数据结构。
最低0.47元/天 解锁文章
2288

被折叠的 条评论
为什么被折叠?



