#include "./03_seq_func.h"
// 创建顺序表
Seq *create_seq()
{
Seq *list = (Seq *)malloc(sizeof(Seq));
memset(list, 0, sizeof(Seq));
return list;
}
// 判断顺序表是否为满,为满返回1,否则返回0
int is_Full(Seq *list)
{
return list->pos >= N ? 1 : 0;
}
// 判断顺序表是否为空,为空返回1,否则返回0
int is_Null(Seq *list)
{
return list->pos <= 0 ? 1 : 0;
}
// 在尾部插入数据,成功返回0,失败返回1
int insert_seq(Seq *list, dataType data)
{
if (list->pos < N)
{
list->data[list->pos] = data;
list->pos++;
printf("%d插入成功!\n", data);
}
else
{
printf("顺序表已满,无法插入%d\n", data);
return -1;
}
return 0;
}
/*
函数功能:根据index下标插入数据
函数参数:Seq *list顺序表 int index插入位置 dataType data插入内容
函数返回值:int 成功返回0,失败返回1
*/
int insert_seq_index(Seq *list, int index, dataType data)
{
// 判断index位置是否有效
if (index < 0 || index > list->pos)
{
printf("%d位置无法插入!\n", index);
return -1;
}
// 判断顺序表是否为满
if (is_Full(list))
{
printf("顺序表已满,无法插入%d\n", data);
return -1;
}
int i;
for (i = list->pos; i > index; i--)
{
list->data[i] = list->data[i - 1];
}
list->data[index] = data;
list->pos++;
printf("%d插入成功!\n", data);
return 0;
}
// 删除尾部数据,成功返回0,失败返回-1
int delete_seq(Seq *list)
{
// 判断顺序表是否为空
if (is_Null(list))
{
printf("顺序表为空,删除失败!\n");
return -1;
}
list->pos--;
printf("%d删除成功!\n", list->data[list->pos]);
return 0;
}
/*
函数功能:根据index下标删除数据
函数参数:Seq *list顺序表 int index删除位置的下标
函数返回值:int 成功返回0,失败返回1
*/
int delete_seq_index(Seq *list, int index)
{
// 判断index位置是否有效
if (index < 0 || index >= list->pos)
{
printf("无法删除下标%d!\n", index);
return -1;
}
// 判断顺序表是否为空
if (is_Null(list))
{
printf("顺序表为空,无法删除下标%d\n", index);
return -1;
}
int i;
for (i = index; i < list->pos - 1; i++)
{
list->data[i] = list->data[i + 1];
}
list->pos--;
printf("下标%d删除成功!\n", index);
return 0;
}
// 修改数据,将旧数据改为新数据,成功返回0,失败返回-1
int update_seq(Seq *list, dataType old_data, dataType new_data)
{
// query_seq(list,data);可替换下列代码
if (is_Null(list))
{
printf("顺序表为空,修改失败!\n");
return -1;
}
int i, flag = -1;
for (i = 0; i < list->pos; i++)
{
if (list->data[i] == old_data)
{
list->data[i] = new_data;
flag = 0;
}
}
if (flag == 0)
{
printf("成功修改%d为%d\n", old_data, new_data);
return 0;
}
else
{
printf("顺序表中不存在%d,无法修改\n", old_data);
return -1;
}
}
// 根据index下标修改数据,成功返回0,失败返回-1
int update_seq_index(Seq *list, int index, dataType data)
{
if (index < 0 || index >= list->pos)
{
printf("index=%d下标不合法,无法修改\n", index);
return -1;
}
list->data[index] = data;
printf("index = %d,修改成功\n", index);
}
// 查询数据,成功返回查询数据的下标,失败返回-1
int query_seq(Seq *list, dataType data)
{
int i, flag = 0, p;
if (is_Null(list))
{
printf("顺序表为空,%d查询失败!\n", data);
return -1;
}
for (i = 0; i < list->pos; i++)
{
if (data == list->data[i])
{
printf("找到%d,下标为:%d\n", data, i);
p = i;
flag = 1;
}
}
if (flag)
{
return p;
}
else
{
printf("顺序表中没有%d\n", data);
return -1;
}
}
// 根据下标查询数据,成功返回该数据,失败返回-1
dataType query_seq_index(Seq *list, int index)
{
int i;
if (is_Null(list))
{
printf("顺序表为空,下标%d查询失败!\n", index);
return -1;
}
for (i = 0; i < list->pos; i++)
{
if (list->data[index] == list->data[i])
{
printf("找到%d,下标为:%d\n", list->data[index], i);
return i;
}
}
}
// 显示所有数据
void show_seq(Seq *list)
{
int i;
printf("\ndata:\n");
for (i = 0; i < list->pos; i++)
{
printf("%d\n", list->data[i]);
}
}
// 顺序表去重
int unique_seq(Seq *list)
{
int i, j;
if (is_Null(list))
{
printf("顺序表为空,无法去重!\n");
return -1;
}
for (i = 0; i < list->pos; i++)
{
for (j = i + 1; j < list->pos; j++)
{
if (list->data[i] == list->data[j])
{
delete_seq_index(list, j);
j--;
}
}
}
printf("顺序表去重成功!\n");
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
数据结构第一天:顺序表的使用
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共8个文件
o:2个
c:2个
h:1个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
0 下载量 170 浏览量
2023-12-02
21:59:31
上传
评论
收藏 12KB ZIP 举报
温馨提示
利用顺序表存储数据,实现数据表的创建,增删改查,利用index下标增删改查,以及顺序表的去重等。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 8 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
*穷jι﹄生
- 粉丝: 194
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)