数据结构-C语言实现线性表的顺序存储结构

概念

啥是线性表?

线性表是具有相同特性的数据元素的一个有限序列

(a1,a2,...,ai-1,ai,ai+1,an)

a1:起始结点(线性起点)

an:终端结点(线性终点)

对于其中一个元素ai,ai-1称作`ai的直接前驱`,ai+1称作`ai的直接后继`

n=0时称为空表(n为元素个数,即表长)

那什么是顺序存储?

顺序表就是把逻辑相邻的数据元素存储在物理也相邻的存储单元中的存储结构

实现

cpp 复制代码
#include<stdio.h>
#include<stdlib.h>

#define INIT_SIZE 100		//定义初始化长度

typedef int typelem;

typedef struct {
	int* pList;			//元素存放首地址
	int length;			//元素长度
	int listsize;		//表最大长度
}SqList;

// 初始化顺序表
void initList(SqList &L) {
	L.pList = (typelem*)malloc(INIT_SIZE * sizeof(typelem));	//申请内存空间
	L.length = 0;				//初始化空表
	L.listsize = INIT_SIZE;		//表最大长度
}
// 插入数据
void insert(typelem e,SqList &L,int n) {
	if (n<=L.length || L.length<L.listsize) {
		for (int i = L.length - 1; i >= n - 1;i--) {
			L.pList[i + 1] = L.pList[i];
		}
		L.pList[n - 1] = e;
		L.length++;
	}
	else {
		printf("插入失败");
	}
}

void printList(SqList &L) {
	for (int i = 0; i < L.length; i++) {
		printf("%d\n",L.pList[i]);
	}
}
int main() {
	SqList L;
	initList(L);
	insert(1,L,1);		//插入元素(要插入的元素,插入在哪张表,插入在第几个)
	insert(2,L,1);
	printList(L);		//打印表
} 
相关推荐
奔跑吧邓邓子3 小时前
【C语言实战(8)】C语言循环结构(do-while):解锁编程新境界
c语言·实战·do-while
小莞尔3 小时前
【51单片机】【protues仿真】基于51单片机温度测量系统
c语言·单片机·嵌入式硬件·物联网·51单片机
晓风凌殇3 小时前
单片机按键检测与长短按识别实现
c语言·单片机
坚持编程的菜鸟4 小时前
LeetCode每日一题——螺旋矩阵
c语言·算法·leetcode·矩阵
(●—●)橘子……4 小时前
记力扣2009:使数组连续的最少操作数 练习理解
数据结构·python·算法·leetcode
iナナ5 小时前
Java优选算法——位运算
java·数据结构·算法·leetcode
机器视觉知识推荐、就业指导5 小时前
C语言中的预编译是什么?何时需要预编译?
c语言·开发语言
Han.miracle6 小时前
数据结构二叉树——层序遍历&& 扩展二叉树的左视图
java·数据结构·算法·leetcode
筱砚.6 小时前
【数据结构——最小生成树与Kruskal】
数据结构·算法
蒙奇D索大7 小时前
【数据结构】考研数据结构核心考点:平衡二叉树(AVL树)详解——平衡因子与4大旋转操作入门指南
数据结构·笔记·学习·考研·改行学it