首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言实现线性表

线性表是最简单数据结构之一, 一个线性表是n个具有相同特性数据元素有限序列。...线性表中数据元素之间关系是一对一关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接(注意,这句话只适用大部分线性表,而不是全部。...比如,循环链表逻辑层次上也是一种线性表(存储层次上属于链式存储),但是把最后一个数据元素尾指针指向了首位结点)。...(sqList.c文件): // // Created by tioncico on 19-4-24. // #include "sqList.h" /**  * 初始化线性表  * @param ...        return -1;     }else{         *priorElem = list.elem[i+1];         return 0;     } } /**  * 删除线性表

97520
您找到你想要的搜索结果了吗?
是的
没有找到

线性表】之栈(C语言)

回顾 顺序表和链表区别和联系 顺序表: ​ 优点:空间连续支持随机访问。 ​ 缺点:1.中间或前面的插入删除时间复杂度O(N)。 ​...优点: ​ 1.任意位置插入删除时间复杂度为O(1) ​ 2.没有增容消耗,按需申请结点空间,不用了直接释放。 ---- 栈 栈也是线性表,在逻辑上还是挨着放。...栈概念以及结构 栈:一种特殊线性表,其只允许在固定一端进行插入和删除元素操作。**进行数据插入和删除操作一端称为栈顶,另一端称为栈底。...**栈中数据元素遵守后进先出LIFO(Last In First Out)原则。 压栈:栈插入操作叫做进栈/压栈/入栈, 入数据在栈顶。 出栈:栈删除操作叫做出栈。 出数据也在栈顶。...(顺序表——【线性表】之顺序表_半生瓜のblog-CSDN博客) 链表实现 出数据得找到前一个,这样的话用双向链表更好一些。

63710

线性表】之队列(C语言)

队列概念 队列只允许在一端进行插入数据操作,在另一端进行删除数据操作特殊线性表,队列具有先进先出FIFO(First in First Out)。 入队列:进行插入操作一端称为队尾。...出队列:进行删除操作一端称为队头。 同样可以使用链表或者数组 数组:不是适合,队头出数据需要挪动数据。 链表:适合单链表,单链表头删效率很高。...pq) { assert(pq); //定义一个新结点 QueueNode* cur = pq->head; while (cur) { //依次保存下一个结点,然后删除这个结点...pq->tail = newnode; } } 队头出 void QueuePop(Queue* pq) { assert(pq); assert(pq->head);//队列是不等于空...QueueEmpty(&pq)) { //取队头数据然后删除 printf("%d ", QueueFront(&pq)); QueuePop(&pq); } QueueDestory

48710

线性表】之顺序表(C语言)

线性表】之顺序表 线性表 线性表(linear list)是n个具有相同特性元素有限序列 。...线性表是一种在实际中广泛使用数据结构,常见线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续一条直线。...但是在物理结构上并不一定是连续线性表在物理上存储时,通常以数组和链式结构形式存储。 顺序表 它是最简单数据结构,也是最常用数据结构——他作用就是将数据存起来。...//ps->arry[ps->size - 1] = 0; ps->size--; //可以复用删除,头删、头插、尾插、同理 //SeqListErase(ps,ps->size); } 头删 void...void SeqListErase(SeqList* ps, int pos) { assert(pos size); //被删除元素后面的位置 int start = pos +

59310

C语言实现线性表顺序表示

文章目录 线性表常规操作 定义顺序表结构体 初始化顺序表 顺序表销毁 清空顺序表 顺序表判空 求顺序表长度 顺序表遍历 顺序表插入​(重点) 算法实现 表尾插入 表中插入 顺序表删除​(重点...; // 求线性表长度 void Travel(); // 遍历线性表 int ListInsert(); // 向线性表插入元素 int ListDelete(); // 从线性表删除元素...int GetElem(); // 找到线性表指定位置元素值 int LocateElem(); // 找到线性表指定元素值位置 定义顺序表结构体 顺序表是有插入和删除操作,所以顺序表长度是变化...,而 C语言数组是定长 ,那么该如何用数组实现顺序表呢?...欢迎大家下载 C语言实现数据结构

2K62

线性表之顺序表(C语言实现)

一、线性表 线性表(linear list)是n个具有相同特性数据元素有限序列。...线性表是一种在实际中广泛使用数据结构,常见线性表:顺序表、链表、栈、队列、字符串等… 线性表在逻辑上是线性结构,也就说是连续一条直线。...但是在物理结构上并不一定是连续线性表在物理上存储时,通常以数组和链式结构形式存储....顺序表一般分为;两种:1.静态顺序表 2.动态顺序表 静态顺序表实际作用不大,本篇主要讲解动态顺序表. 2.1 静态顺序表简单介绍: 静态顺表是指顺序表容量是固定,如果看过c语言实现通讯录友友们...顺序表尾删操作没有必要真的将最后一个数据删除,只需要调整size值,那样我们就不能访问到已经删除元素,这也就等于删除了.

82930

【数据结构(C语言版)系列一】 线性表

(5)输出 一个算法有一个或多个输出,这些输出是同输入有着某些特定关系量。 线性表——顺序存储结构 线性表顺序顺序表示指的是用一组地址连续存储单元依次存储线性表数据元素。...存储位置为:  LOC(ai) = LOC(a1) + (i-1) * l LOC(a1)指线性表第一个数据元素a1存储位置,通常称做线性表起始位置或基地址。...只要确定了存储线性表起始位置,线性表中任一数据元素都可随机存取,所以线性表顺序存储结构是一种随机存取存储结构。 若表长为n,为删除或插入元素时间复杂度为O(n)。...单链表顺序存储结构如下图: 线性表——链式存储结构 链式存储删除与插入更方便,不用来回移动大量元素。...这种存储结构仍需要预先分配一个较大空间,但在作线性表插入和删除操作时不需要移动元素,仅需修改指针,故仍具有链式存储结构主要优点。

2.1K30

1-5 线性表元素区间删除 (20 分)

本文链接:https://blog.csdn.net/shiliang97/article/details/100141960 1-5 线性表元素区间删除 (20 分) 给定一个顺序存储线性表,请设计一个函数删除所有值大于...; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素位置...*/ }; L是用户传入一个线性表,其中ElementType元素可以通过>、==、<进行比较;minD和maxD分别为待删除元素值域下、上界。...函数Delete应将Data[]中所有值大于minD而且小于maxD元素删除,同时保证表中剩余元素保持顺序存储,并且相对位置不变,最后返回删除表。...; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素位置

2K40

2-1 线性表之顺序表 及其C语言实现

是由n个相同类型元素 所构成 有限线性序列。 线性表主要基本操作有以下几种: ①Initiate(L):初始化,设定一个空线性表。...②Length(L):对给定线性表,函数返回值为其数据元素个数。...⑤Insert(L, i, x):插入,对给定线性表,在第i个位置插入新元素x,(i要在长度范围内) ⑥Delete(L,i):删除,对给定线性表,按照索引号i 删除对应元素,(i 要在长度范围内...) 这几项是线性表应当满足基本操作。...顺序表可以有两种实现方式: 静态顺序表 :一般使用数组来实现, 动态顺序表:一般使用动态申请内存来实现,比如C语言中是malloc,C++中用new ①静态顺序表程序实现: 头文件 sq_list_

1.6K30

数据结构初步(三)- 线性表之顺序表分析与C语言实现

前言 本节将要介绍线性表顺序表,从简单数据结构开始,慢慢深入。 ---- 1. 线性表 概念 线性表是n个具有相同特性数据元素有限序列。 线性表时一种在实际中广泛使用数据结构。...线性表逻辑结构是线性结构,也就是说是连续线性表物理结构不一定是连续,在实际储存时是以数组和链式形式储存。...---- C语言代码实现 头文件SeqList.h 进行头文件包含、动态顺序表结构体声明、函数声明、#define定义 #pragma once #include #include...,被删除位置值并不需要做出多余改变,因为被删除位置不再属于顺序表有效位置了。...* psl) { SLErase(psl, psl->size - 1); } //头删 void SLPopFront(SL* psl) { SLErase(psl, 0); } ---- 完整C语言代码实现

43610
领券