数据结构
文章平均质量分 91
秋千水竹马道
秋千水 竹马道 一眼见你 万物不及
展开
-
栈(操作受限的线性表)---C语言版
目录一、栈的相关概念二、栈的基本操作三、顺序栈3.1 顺序栈的定义3.2 顺序栈的操作`InitStack(*S)`:构造一个空栈S`StackEmpty(S)`:若栈S为空栈,则返回TRUE,否则为FALSE。`Push(*S,e)`:插入元素e为新的栈顶元素`Pop(*S,*e)`:删除S的栈顶元素,并用e返回其值。`StackLength(S)`:返回栈S的元素个数,即栈的长度。`GetTop(S,*e)`:用e返回栈顶元素`StackTraverse(S)`:从栈底到栈顶依次遍历栈S,打印其中的元素原创 2021-12-30 18:15:51 · 1508 阅读 · 0 评论 -
遗落在时光里的静态链表(线性表的静态存储)---C语言版
总所周知,指针是c语言的灵魂,指针使得链表的实现简单明了起来。但是问题来了,在c语言还没有的时代,又想描述链表,怎么办呢?这就有了我们今天的主角静态链表首先,我们来解决一个最重要的问题,没有指针,怎么表示下一个元素的位置呢?当时的人们想出来的办法便是,用数组的下标来代替指针。我们把这个数组的下标叫做游标。第二个问题,当我们要往数组里插入元素时,如何确定数组里哪些分量未被使用,要插到哪个位置上呢?当我们删除一个元素的时候,要把这个删除后已经不存放数据的数组分量链接到哪里去,然后再次被使用呢?.原创 2021-12-09 14:39:11 · 1189 阅读 · 2 评论 -
循环链表(线性表的链式存储)---C语言版
目录循环链表一、循环单链表1、循环单链表定义2、循环单链表操作初始化表。构造一个空表。求表长3、含尾指针的循环单链表二、循环双链表1、循环双链表定义2、循环双链表操作初始化表。构造一个空表。根据数组创建双链表插入操作。在表L中的第i个位置上插入指定元素e。删除操作。删除表中L中第i个位置的元素,并用e返回删除的元素。三、 循环单链表完整源码四、 循环双链表完整源码循环链表特点:表中最后一个结点的指针域指向头结点,整个链表形成一个环。既然是环的话,那就不难想象,从表中任意一个结点出发都可以找到表中其他结原创 2021-12-07 22:46:15 · 1343 阅读 · 0 评论 -
双链表(线性表的链式存储)---C语言版
目录双链表(线性表的链式存储)---C语言版一、单链表的定义二、单链表上具体操作的实现和时间复杂度1、初始化表。构造一个空表。2、根据数组创建双链表(头插法和尾插法)3、插入操作。在表L中的第i个位置上插入指定元素e。4、删除操作。删除表中L中第i个位置的元素,并用e返回删除的元素。三、完整代码实现双链表(线性表的链式存储)—C语言版单链表结点中只有一个指向其后继结点的指针,使得单链表只能从头结点依次顺序地向后遍历。要访问某个结点的前驱结点,只能从头开始遍历。也就是说:访问后继结点的时间复杂度为O原创 2021-12-02 17:13:01 · 1394 阅读 · 0 评论 -
单链表(线性表的链式存储)---C语言版
单链表(线性表的链式存储)—C语言版一、相关说明逻辑上相邻的元素在物理位置上不一定相邻。优点:没有了顺序存储所具有的弱点(也就是说:插入和删除不需要移动元素,而只需要修改指针。)同时,由于不借助数组实现,在定义链表时,无需指定它的长度。缺点:也失去了顺序存储的优点非随机存取(不能直接找到某个特定序号的结点,需要从表头开始遍历)存储密度降低(除了存储本身信息外链表还要存储指针)二、单链表的定义定义线性表的链式存储又称为单链表,它是指通过一组任意的存储单位来存储线性表中的元原创 2021-12-07 22:46:29 · 2739 阅读 · 0 评论 -
顺序表(线性表的顺序存储)---C语言版
目录顺序表一、顺序表的定义二、顺序表上基本操作的具体实现1.`InitList_Sq(*L)`:初始化表。构造一个空的顺序表。分类一:主函数里声明的是一个指向顺序表的指针分类二:主函数里声明的是一个顺序表2. `Length(L)`:求表长。3.`ListInsert_Sq(*L,i,e)`:插入操作。在顺序表L中的第i个位置上插入指定元素e。4.`ListDelete_Sq(*L,i,*e)`:删除操作。删除表中L中第i个位置的元素,并用e返回删除的元素。5.`LocateElem(L,e)`:按值查找操原创 2021-11-27 15:36:47 · 2287 阅读 · 0 评论 -
线性表的定义和基本操作
线性表线性表的定义1. 线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。2. 若用L命名线性表,则其一般表示为L=(a1,a2,…,ai,ai+1,…an)3. 表达式中a1是唯一"第一个”数据元素,又称为表头元素;an是唯一的"最后一个"数据元素,又称为表尾元素。4. 除第一个元素外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后驱。我们将通过一个例子(下表)来对它的定义进行阐述idnam原创 2021-11-25 21:33:55 · 3103 阅读 · 0 评论