结构
带头链表里的头结点,现实为“哨兵位”,哨兵位结点不存储任何有用元素,只是站在这里“放哨 的”
实现双向链表
List.h
- #pragma once
- #include<stdio.h>
- #include<stdlib.h>
- #include<assert.h>
- #include<stdbool.h>
- //定义双向链表结点的结构
- typedef int LTDataType;
- typedef struct ListNode
- {
- int data;
- struct ListNode* next;
- struct ListNode* prev;
- }LTNode;
- //初始化
- //void LTInit(LTNode** pphead);
- LTNode* LTInit();
- void LTPrint(LTNode* phead);
- //插入
- //1.传一级还是二级,要看pphead指向的结点会不会发生改变
- //2.如果发生改变,那么pphead的改变要影响实参,传二级
- //3.如果不发生改变,pphead不会影响实参,传一级
- void LTPushBack(LTNode* phead, LTDataType x);
- void LTPushFront(LTNode* phead, LTDataType x);
- //删除
- void LTPopBack(LTNode* phead);
- void LTPopFront(LTNode* phead);
- bool LTEmpty(LTNode* phead);
- //查找
- LTNode* LTFind(LTNode* phead, LTDataType x);
- //在pos位置之后插入结点
- void LTInsert(LTNode* pos, LTDataType x);
- //删除指定位置的结点
- void LTErase(LTNode* pos);
- //销毁
- void LTDesTroy(LTNode** pphead);
- //为了保持接口的一致性,优化接口都为一级指针
- void LTDesTroy2(LTNode* phead);
复制代码 List.c
test.c
- #include"List.h"
- void ListTest01()
- {
- //创建双向链表
- /*LTNode* plist = NULL;
- LTInit(&plist);*/
- LTNode*plist=LTInit();
- LTPushBack(plist, 1);
- LTPushBack(plist, 2);
- LTPushBack(plist, 3);
- LTPushBack(plist, 4);
- LTPrint(plist);
- /*LTPushFront(plist, 1);
- LTPrint(plist);
- LTPushFront(plist, 2);
- LTPrint(plist);
- LTPushFront(plist, 3);
- LTPrint(plist);
- LTPushFront(plist, 4);
- LTPrint(plist);*/
- /*LTPopBack(plist);
- LTPrint(plist);
- LTPopBack(plist);
- LTPrint(plist);
- LTPopBack(plist);
- LTPrint(plist);
- LTPopBack(plist);
- LTPrint(plist);*/
- /*LTPopFront(plist);
- LTPrint(plist);
- LTPopFront(plist);
- LTPrint(plist);
- LTPopFront(plist);
- LTPrint(plist);
- LTPopFront(plist);
- LTPrint(plist);*/
- //LTNode* pos = LTFind(plist, 2);
- /*if (pos == NULL)
- {
- printf("没有找到!\n");
- }
- else
- {
- printf("找到了!\n");
- }*/
- /*LTInsert(pos, 13);
- LTPrint(plist);*/
- /*LTErase(pos);
- LTPrint(plist);*/
- //LTDesTroy(&plist);
- LTDesTroy2(plist);
- }
- int main()
- {
- ListTest01();
- return 0;
- }
复制代码 序次表和链表的分析
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |