• 2024-11-21深度探索 C 语言数据结构——双链表:从键盘输入到增删查改及去重操作全解析
    C语言数据结构——双链表:从键盘输入到增删查改及去重操作全解析例题一、创建双链表(一)定义双链表(二)双链表的创建函数二、双链表的增加操作(一)头插(二)尾插(三)在pos位置之后插入数据三、双链表的删除操作(一)头删(二)尾删(三)删除指定位置节点四、双链表去重操作五、销毁双链表六
  • 2024-11-13手搓双向循环链表
    文章目录前言一、链表的结构二、双向链表2.1概念与结构2.2实现双向链表总结前言上一篇我们学习了单链表的概念以及单链表的实现,但链表可不止单链表一种,今天我们来整体学习链表这个小小卡拉米,Follwme一、链表的结构链表的结构多种多样,有带头的不带头的,有单
  • 2024-11-12【初阶数据结构与算法】线性表之链表的分类以及双链表的定义与实现
    文章目录一、链表的分类二、双链表的实现1.双链表结构的定义2.双链表的初始化和销毁初始化函数1初始化函数2销毁函数3.双链表的打印以及节点的申请打印函数节点的申请4.双链表的头插和尾插头插函数尾插函数5.双链表的查找和判空查找函数判空函数6.双链表的头删和尾
  • 2024-11-08队列详解
    目录队列队列的概念及结构队列的实现代码队列功能的实现队列的尾插voidQueuePush(Queue*pq,QDataTypex);结构体封装指针typedefstructQueue总结代码队列的头删voidQueuePop(Queue*pq)代码队列的初始化voidQueueInit(Queue*pq)代码队列的销毁voidQueueDest
  • 2024-11-07链表(C 语言)
    目录一、链表的概念1.链表的结构2.链表的分类3.链表的优势二、链表的实现1.无头单项非循环链表的实现1.1代码说明2.带头双向循环链表的实现2.1代码说明三、链表和顺序表的区别四、链表总结一、链表的概念链表是一种顺序表,它由一个一个的节点组成,该节点中
  • 2024-10-25数据结构 ——— C语言实现链式队列
    目录队列的概念以及示意图数组队列和链式队列链式队列的结构 实现链式队列的准备工作实现链式队列1.初始化2.打印队列的所有数据3.数据入队列(尾插)4.数据出队列(头删)5.访问队头的数据6.访问队尾的数据7.队列数据总个数8.判断队列是否为空9.释放队列的所
  • 2024-10-23数据结构-----------栈和队列后续
    1队列1.1概念与结构概念:只允许在一端进行插入数据操作,在另一端进行删除元素特殊的线性表,队列具有先进先出的性质入队列:进行插入操作的的一端叫做队尾出队列:进行删除操作的一端叫做队头下面我们来看一下队列的实现队列其实跟单链表是差不多的只不过队列只允许在队尾插入数
  • 2024-10-21数据结构-双向链表
    一概念与结构带头双向循环链表注意:这⾥的“带头”跟前⾯我们说的“头结点”是两个概念,带头链表⾥的头结点,实际为“哨兵位”,哨兵位结点不存储任何有效元素,只是站在这⾥“放哨的。如果,带头的链表中,只有头节点,我们就称该链表为空链表。二双向链表的实现创建一个新项目,并创
  • 2024-10-21数据结构——队列
    目录1>>导言2>>队列的结构3>>初始化4>>打印5>>入列6>>出列6.1>>判断是否为空7>>取队头和队尾数据and统计个数8>>队列销毁9>>三个文件代码queue.hqueue.ctest.c10>>总结1>>导言    在把栈学习完后,步入新的章节——队列,队列是一种特殊的线性表,队列是
  • 2024-10-13C++_list的使用及其实现
    ✨✨欢迎大家来到小伞的大讲堂✨✨
  • 2024-10-13数据结构————————单链表
    1单链表1.1概念与结构        概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。单链表就如同火车一样去掉或加上车厢不会影响到其他的车厢那么在链表中,每节车厢是什么样子的呢?如图下:1.1.1
  • 2024-10-12数据结构与算法 - 单链表 & 双链表 -- 概念+实现
    文章目录前言一、顺序表的缺陷二、链表是如何设计的?三、链表的分类四、链表的概念及其结构1、链表的概念:2、链表的结构五、不带头单向不循环链表的实现(一)、SList.h的实现(二)、SList.c的实现1、初始化2、创建结点3、头插4、尾插4、头删5、尾删6、指定p
  • 2024-10-05数据结构——栈和队列
    数据结构——栈和队列文章目录数据结构——栈和队列一、栈1.概念2.结构这里我们选择数组作为栈的底层结构。3.栈的实现3.1初始化3.2销毁3.3入数据3.4出数据3.5取栈顶元素3.6获取栈中有效元素个数4.完整代码4.1.Stack.h4.2.Stack.c4.3.test.c二、队列1.概念2.结构这
  • 2024-09-30数据结构~~链表
    目录一、链表的概念二、单链表1.单链表的结构2.单链表的接口实现 2.1、动态申请节点2.2、单链表打印 2.3、摧毁单链表 2.4、单链表尾插 2.5、单链表的头插 2.6、单链表的尾删 2.7、单链表的头删 2.8、单链表在pos位置之前插入x2.9、单链表删除pos位置的值
  • 2024-09-27队列的深度解析:链式队列的实现
    引言队列是一种广泛应用于计算机科学的数据结构,具有先进先出(FIFO)的特性。在许多实际应用中,例如任务调度、缓冲区管理等,队列扮演着重要角色。本文将详细介绍队列的基本概念,并通过链表实现一个简单的队列。一、基本概念1.1定义队列是一种线性数据结构,遵循先进先出(FIFO,Firs
  • 2024-09-24数据结构:双向链表(Doubly Linked List篇)手把手带你入门数据结构~
    文章目录前言一、双向链表的概念1.结构特点:2.优点:二、双向链表的实现1.双向链表的结构2.双向链表初始化3.双向链表销毁4.双向链表打印5.双向链表尾插6.双向链表头插7.双向链表尾删8.双向链表头删9.双向链表查找10.双向链表指定位置插入11.双向链表指定位置
  • 2024-09-21【数据结构】链表及其代码实现
    之前我们已经学习了顺序表,现在让我们来进行对链表的学习!!!【顺序表详解】
  • 2024-09-14【数据结构】队列
    队列的概念及结构队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(FirstInFirstOut)入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为队头队列的模拟实现队列也可以数组和链表的结构实现,使用链表的结构
  • 2024-09-05内核链表基本知识
    一、基本知识内核链表:可以给里面的每一个数据都可以存储不同的数据的类型,结构体成员里面(将结点放在数据中)1、实质内核链表:有头的、双向循环链表2、注意结构体第一个成员即为结构体的首地址该链表里面的数据主要由两部分构成前驱结点,后继结点,该节点作为数据放在数据中3、
  • 2024-09-04数据结构——单链表查询、逆序、排序
    1、思维导图2、查、改、删算法//快慢排序法找中间值intmid_link(Link_t*plink){Link_Node_t*pfast=plink->phead;Link_Node_t*pslow=pfast;intm=0;while(pfast!=NULL){pfast=pfast->pnext;++m;if(m%
  • 2024-08-30顺序表和链表知识点
    1顺序表顺序表是指用一段物理地址连续的空间去存储数据的线性结构。顺序表有两种:静态顺序表,动态顺序表。1.1静态顺序表结构体定义typedefintElemDataSL;typedefstructSequeList{ ElemDataSLarr[100]; intsize;}SL;静态顺序表在创建结构体的时候就已经把
  • 2024-08-29数据结构:双向链表
    目录结构体创建链表插入链表头插法尾插法 遍历打印删除更新查找销毁结构体typedefintDataType;typedefstructnode{structnode*pPre;DataTypedata;structnode*pNext;}LinkNode;创建链表LinkNode*CreateDouList(){LinkNode
  • 2024-08-28数据结构——单向链表
    链表1.空间可以不连续(理论上长度是无限的)2.访问元素不方便3.链表需要更大的空间存放数据和节点地址4.链表的插入和删除效率很高O(1)单向链表无头单向链表,节点插入在头的话,每次头结点都会变,所以有了有头链表,头结点的pNext总是指向链表的第一个节点1.创建空链表//创建空
  • 2024-08-17数据结构中的双向链表
    1.链表的分类链表的结构非常多样,以下情况组合起来就是8种(2x2x2)链表结构:  在带头链表中,除了头结点,其他结点均存储有效的数据。头结点是占位子的,也叫做“哨兵位”。head结点就是头结点。 循环的链表尾结点不为NULL,不循环的链表尾结点为NULL单链表:不带头单向不循环链
  • 2024-08-09单链表的增删查改
    头文件#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<assert.h>typedefstructMyStruct{   intdata;   structMyStruct*next;}SL;voidlistprint(SL**phead);//打印链表voidlistpushback(SL**phead,intx);/