当前位置: 首页 > news >正文

复习2:带头双向链表

1.双向链表

typedef struct shuangxiang 
{
int data;
struct shuangxiang *next;
struct shuangxiang *prev;
}biao;

2.哨兵位创建

void setshaobing(biao**point)
{
*point=(biao*)malloc(sizeof(biao));
*point->data=-1;
*point->next=*point->prev=NULL;
}

 3.尾插

void backset(biao*point,int a)
{
biao*point1=(biao*)malloc(sizeof(biao));
point1->data=a;
point1->prev=point->prev;
point->prev->next=point1;
point1->next=point;
point->prev=point1;}

4.前插

void frontset(biao*point,int x)
{
biao*point1=(biao*)malloc(sizeof(biao));
point1->data=x;
point1->next=point->next;
point1->prev=point;
point->next->prev=point1;
point->next==point1;
}

5.尾删

void backlose(biao*point)
{
assert(point);
assert(point->next);
point->prev=point->prev->prev;
point->prev->prev->next=point;
free(point->prev);
point->prev=NULL;
}

6.头删

void frontlose(biao*point)
{
assert(point);
assert(point->next);
point->next=point->next->next;
point->next->next->prev=point;
free(point->next);
point->next=NULL;
}

7.查找

biao*find(biao* point,int x)
{
assert(point);
assert(point->next);
biao*point1=point->next;
while(point1!=point)
{
if(point1->val==x)
{
return point1;
}
point1=point1->next;
}
return NULL;
}

8.链表在某位置的删除和添加(和尾插尾删类似)

9.链表的销毁

void destory(biao**point)
{
assert(point);
assert(point->next);
biao*point1=(*point)->next;
while(point1!=point)
{
biao*point2=point1->next;
free(point1);
point1=point2;
}
free(point);
point=NULL;
}

相关文章:

  • Elasticsearch:适用于 iOS 和 Android 本机应用程序的 Elastic APM
  • wps使用方法(包括:插入倒三角符号,字母上面加横线,将word中的所有英文设置为time new roman)
  • [AIGC codze] Kafka 的 rebalance 机制
  • django通过指定用户手机号查询外键所关联的数据,倒序查询
  • 【51单片机】AT24C02(江科大、爱上半导体)
  • gem5学习(20):替换策略——Replacement Policies
  • C++11---(1)
  • 函数式编程要点
  • N-144基于微信小程序在线订餐系统
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第五天-ARM Linux编程之file_operations详解 (物联技术666)
  • C#既然数组长度不可改变,那么如何动态调整集合类型数组大小,以便添加或删除元素?
  • KingSCADA实现按钮点击效果
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核内存管理-动态内存
  • 在PyTorch中,如何查看深度学习模型的每一层结构?
  • [高并发] - 1.高并发综述
  • #Java异常处理
  • [ JavaScript ] 数据结构与算法 —— 链表
  • 4个实用的微服务测试策略
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • E-HPC支持多队列管理和自动伸缩
  • JavaScript 基本功--面试宝典
  • php ci框架整合银盛支付
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • 第十八天-企业应用架构模式-基本模式
  • 读懂package.json -- 依赖管理
  • 对JS继承的一点思考
  • 回顾 Swift 多平台移植进度 #2
  • 机器学习中为什么要做归一化normalization
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 扑朔迷离的属性和特性【彻底弄清】
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 我看到的前端
  • 小试R空间处理新库sf
  • 终端用户监控:真实用户监控还是模拟监控?
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • ###C语言程序设计-----C语言学习(6)#
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (39)STM32——FLASH闪存
  • (arch)linux 转换文件编码格式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (接口封装)
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)程序员技术练级攻略
  • (转)详解PHP处理密码的几种方式
  • *p++,*(p++),*++p,(*p)++区别?
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .Net 代码性能 - (1)