目录
线性表是数据结构的一种。一个线性表是n个具有相同特性的数据元素的有限序列。线性表中数据元素是一对一的关系。线性表主要有顺序表、链表、栈和队列。
线性表是数据结构的一种。一个线性表是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;
}