【线 性 表】

本文介绍了线性表的基本概念,包括它作为数据结构的特性以及主要类型如顺序表、链表、栈和队列。重点讲解了顺序表的实现,包括使用数组存储,以及插入、删除、修改、查找和输出元素的函数实现。示例代码展示了如何在C语言中操作顺序表。
摘要由CSDN通过智能技术生成

目录

线性表是数据结构的一种。一个线性表是n个具有相同特性的数据元素的有限序列。线性表中数据元素是一对一的关系。线性表主要有顺序表、链表、栈和队列。

一、顺序表

1)特点:

宏定义

顺序表元素的增删改查

1)增加元素

2)删除元素

3)修改元素

4)查找元素

5)输出元素

主函数调用


线性表是数据结构的一种。一个线性表是n个具有相同特性的数据元素的有限序列。线性表中数据元素是一对一的关系。线性表主要有顺序表、链表、栈和队列。

一、顺序表

顺序表是一种数据结构,结构是将数据依次存放在地址连续的存储单元中。

1)特点:

存储元素的地址是连续的:

2)通过对首地址的偏移,可访问所有元素。

宏定义

int arr[100];//数组只有在定义的时候可以对整体赋值,之后不可以arr[100]={}
int num = 0;//num表示线性表已存在的数据个数
int maxSize=100;

顺序表元素的增删改查

1)增加元素

//添加元素
void insert(int data)
{
	if (num < maxSize)//判断表中元素是否达到上限
	{
		arr[num] = data;
		num++;
	}
}

2)删除元素

//删除元素
void delete(int* p, int* len, int data)
{
	for (int j = 0; j < (*len) - 1; j++)
	{
		if (p[j] == data)
		{
			int n = j;
			for (j = n; j < (*len) - 1; j++)
			{
				p[j] = p[j + 1];
			}
			(*len)--;//数组个数-1
			j--;
		}
	}
}

3)修改元素

//修改元素
void change(int* p, int* len, int val, int data)//val被修改的数据
{
	for (int j = 0; j < (*len) - 1; j++)
	{
		if (p[j] == val)
		{
			p[j] = data;
		}
	}
}

4)查找元素

//元素的查找
void find(int* p, int* len, int val)
{
	for (int j = 0; j < (*len) - 1; j++)
	{
		if (p[j] == val)
		{
			printf("%d的位置在%d\t\t", p[j], j + 1);
		}
	}
	printf("\n");
}

5)输出元素

//输出元素
void print()
{
	for (int i = 0; i < num; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
}

主函数调用

int main()
{
	for (int i = 0; i < 10; i++)
	{
		insert(i + 1);
	}
	for (int i = 10; i < 20; i++)
	{
		insert(i + 1);
	}
	print();
	//delete(&arr, &num, 3);
	change(&arr, &num, 3,10);
	find(&arr, &num, 10);

	print();
    return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨焰翎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值