顺序表(C语言)
在数据结构的世界里,顺序表是一种基础且重要的结构。它通常使用数组来实现,提供了快速的随机访问能力。本文将介绍如何在C语言中实现一个简单的顺序表,包括初始化、插入、删除和打印操作。
1.定义顺序表结构体
首先,我们需要定义一个结构体来表示顺序表:
#define Max_Size 100
typedef int ElemType;
typedef struct {
ElemType* data; //存放线性表中的长度
int length; //存放线性表长度
}Seqlist; //顺序表类型
2.初始化顺序表
接下来,我们需要实现一个初始化函数,为顺序表分配内存,并设置初始长度和容量:
// 创建顺序表
void initSeqlist(Seqlist* L) {
L->data = (ElemType*)malloc(sizeof(ElemType)*Max_Size);
if(L->data == NULL) {
printf("顺序表创建失败\n");
}
L->length = 0;
}
3.插入元素
3.1顺序表头插
//顺序表头插
void insertATBegining(Seqlist* L) {
int elem = 0;
printf("请输入要头插的元素:\n");
scanf("%d",&elem);
if(L->length >= Max_Size) {
printf("顺序表已满,无法插入");
}
else {
for (int i = L->length - 1; i >= 0; i--) {
L->data[i + 1] = L->data[i];
}
L->data[0] = elem;
L->length++;
}
}
3.2 顺序表尾插
//顺序表尾插
void insertAtBegining(Seqlist* L) {
int elem = 0;
printf("请输入要尾插的元素:\n");
scanf("%d",&elem);
if(L->length >= Max_Size) {
printf("顺序表已满,无法插入");
}
else {
L->data[L->length] = elem;
L->length++;
}
}
4.删除顺序表指定元素
//删除指定元素
void DetateElem(Seqlist* L) {
int elem = 0;
printf("请输入要删除的元素:\n");
scanf("%d",&elem);
for (int i = 0; i < L->length; i++) {
if(L->data[i] == elem) {
for (int j = i; j < L->length - 1; j++) {
L->data[j] = L->[j + 1];
}
L->length--;
}
}
}
5.查找元素
// 查找元素是否在顺序表中
bool findelem(Seqlist* L) {
int elem = 0;
printf("请输入要查找的元素:\n");
scanf("%d",&elem);
for (int i = 0; i < L->length; i++) {
if (L->data[i] == elem) {
return true;
}
}
return false;
}
6.输出顺序表
// 输出顺序表
void DispSeqlise(Seqlist* L) {
if(L->length == 0) {
printf("线性表为空\n");
}
for (int i = 0; i < L->length; i++) {
printf("%d",L->data[i]);
}
}
7.销毁顺序表
// 销毁顺序表
void deleteSeqlist(Seqlist* L) {
free(L);
}
顺序表(C语言)的更多相关文章
- 数据结构与算法之顺序表C语言实现
顺序表等相关概念请自行查阅资料,这里主要是实现. 注: 1.顺序表C语言实现: 2.按较简单的方式实现,主要帮助理解,可在此基础上修改,更加完善: 3.提供几个简单函数,可自行添加功能: 4.可用C+ ...
- 顺序表C语言版
#include <stdio.h> /* * 顺序表最多输入N个数 */ #define N 10 #define OK 1 #define ERROR -1 struct sequeu ...
- 线性表之顺序表(C语言实现)
线性表是从数据元素的逻辑结构上定义的. 这种数据元素的逻辑结构的特征如下: 1.除开第一个和最后一个元素之外.所有元素都有一个前驱元素和后继元素. 2.第一个元素无前驱元素,但有后继元素. 3.最后一 ...
- 顺序表-Go语言实现
简单理解就是数组: 优缺点及使用场景 优点: 随机访问,在O(1)时间内找到第i个元素: 数据表中的数据是连续存放的,因此只要知道数据表中第一个元素的地址,那么后面的数据元素的地址就可以马上算出来. ...
- 顺序表-C语言实现
顺序存储线性表的结构体: #define MAXSIZE 100 //数组最大长度 typedef int ElemType; //元素类型 typedef struct //定义线性表结构体 { E ...
- 数据结构C语言版--动态顺序表的基本功能实现(二)
/* * 若各个方法结构体变量参数为: &L(即地址符加变量)则结构体变量访问结构成员变量时使用"." * 若为:*L(即取地址符加变量)则结构体变量访问结构体成员变量使用 ...
- C语言实现顺序表
C语言实现顺序表代码 文件SeqList.cpp #pragma warning(disable: 4715) #include"SeqList.h" void ShowSeqLi ...
- c语言进阶12-线性表之顺序表
一. 线性表的定义 为什么要学习线性表呢? 因为我们日常生活中存在种数据关系,计算机程序是为了解决日常生活的数据关系,因此我们要学习线性表. 线性表是什么呢? 线性表是由n个元素组成的有限序列. 需 ...
- 【数据结构】之顺序表(Java语言描述)
之前总结过使用C语言描述的顺序表数据结构.在C语言类库中没有为我们提供顺序表的数据结构,因此我们需要自己手写,详细的有关顺序表的数据结构描述和C语言代码请见[我的这篇文章]. 在Java语言的JDK中 ...
- 【数据结构】之顺序表(C语言描述)
顺序表是线性表的一种,它将元素存储在一段连续的内存空间中,表中的任意元素都可以通过下标快速的获取到,因此,顺序表适合查询操作频繁的场景,而不适合增删操作频繁的场景. 下面是使用 C语言 编写的顺序表的 ...
随机推荐
- [JLOI2015] 城池攻占 题解
前言 题目链接:洛谷. 题目分析 其他人要么倍增,要么左偏树,那我就来讲讲朴实无华的 dfs 序加上线段树的做法. 首先发现题目中明确指出了作乘法的时候一定是乘上一个大于零的数,这是为什么呢?首先把可 ...
- C#自定义快捷操作键的实现 - 开源研究系列文章
这次想到应用程序的快捷方式使用的问题. Windows已经提供了API函数能够对窗体的热键进行注册,然后就能够在窗体中使用这些注册的热键进行操作了.于是笔者就对这个操作进行了整理,将注册热键操作写成了 ...
- flex 左右布局-----在手机端,当左侧宽度固定,右侧宽度自适应时,右侧会超出浏览器窗口的问题解决方案
废话不多说:直接上代码解决问题: 父级: .parent { display: flex; flex-flow: row; } 子级: .left-child { width:100px; } .ri ...
- 使用 extract_sqlaudit_proc 存过分析ob性能问题
最近在某个金融单位核心系统项目做ob的性能压测,期间遇到不少问题,现场两周了每天都加班到凌晨一两点左右,真的是累死. 我其实进ob之前有心理预期,卷就卷吧,八九点下班也能接受,没想到真到了干项目的情况 ...
- 【全】CSS动画大全之其他【火影忍者动态背景】
效果预览 代码 <!DOCTYPE html> <html> <head> <head> <meta charset="utf-8&qu ...
- AtCoder Beginner Contest 363
AtCoder Beginner Contest 363 前言 只出了三题,被 d 卡住了,事实上 e 题应该对我而言更简单,没及时换题. A - Piling Up (atcoder.jp) 思路 ...
- 2023 ICPC网络赛第一场(A,D,J,L)
2023 ICPC网络赛第一场(A,D,J,L) A Qualifiers Ranking Rules 先把两场比赛的学校排名处理出来,然后两场比赛的同位次进行合并即可 #include <bi ...
- 微服务开发手册之GRPC
荐
GRPC是一个高性能.通用的开源RPC框架,基于HTTP/2协议标准和Protobuf序列化协议开发,支持众多的开发语言. @[TOC] 1 简介 在GRPC框架中,客户端可以像调用本地对象一样直接调 ...
- 通过JMX监控weblogic服务
一.JMX简介 JMX是一种JAVA的正式规范,它主要目的是让程序有被管理的功能,那么怎么理解所谓的"被管理"呢?试想你开发了一个软件(如WEB网站),它是在24小时不间断运行的, ...
- 国产崛起,Solon:我们的性能是 Spring 的 300%
Solon 应用开发框架(java framework).是从零开始构建,有自主的标准规范与开放生态.纯血国产. 追求: 更快.更小.更简单 提倡: 克制.简洁.高效.开放.生态 相对于 Spring ...