Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
@大熊_
LearningDataStructure-Algorithm
提交
470b7220
LearningDataStructure-Algorithm
项目概览
@大熊_
/
LearningDataStructure-Algorithm
通知
4
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
LearningDataStructure-Algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
470b7220
编写于
10月 27, 2020
作者:
@大熊_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
顺序表
上级
3b217a8c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
138 addition
and
0 deletion
+138
-0
SeqList.c
SeqList.c
+117
-0
includes/SeqList.h
includes/SeqList.h
+21
-0
未找到文件。
SeqList.c
0 → 100644
浏览文件 @
470b7220
/*
* @Description: 顺序表
* @Author: 大熊人
* @Date: 2020-09-30 11:38:10
* @LastEditTime: 2020-10-26 20:40:09
*/
#include <stdio.h>
#include <stdlib.h>
#include "includes/SeqList.h"
/**
* @description: 初始化顺序表
* @param {struct *}L
*/
void
InitList
(
SeqList
*
L
)
{
L
->
size
=
0
;
/*定义初始数据元素个数*/
}
/**
* @description: 在顺序表L的位置i(0 ≤ i ≤ size)前插入数据元素值X
* @param {struct *}L
* @param {LIST_DATA_TYPE}X
* @return {int}
*/
int
ListInsert
(
SeqList
*
L
,
int
i
,
LIST_DATA_TYPE
X
)
{
int
j
;
if
(
L
->
size
>=
MaxSize
)
{
return
0
;
//顺序表已满 无法插入
}
else
if
(
i
<
0
||
i
>
L
->
size
)
{
return
0
;
//传入的参数i不合法
}
else
{
for
(
j
=
L
->
size
-
1
;
j
>=
i
;
j
--
)
{
L
->
list
[
j
+
1
]
=
L
->
list
[
j
];
/* 插入元素的位置及之后的元素向后移 5 4 3 2 1 0 --> 6 5 4 3 2 1 */
}
L
->
list
[
i
]
=
X
;
/*插入*/
L
->
size
=
L
->
size
+
1
;
/*元素个数加1*/
return
1
;
}
}
/**
* @description: 删除顺序表L中位置i(0 ≤ i ≤ size - 1)的数据元素值并存放到参数X中
* @param {struct *}L
* @param {LIST_DATA_TYPE *}
* @return {int}
*/
int
ListDelete
(
SeqList
*
L
,
int
i
,
LIST_DATA_TYPE
*
X
)
{
int
j
;
if
(
L
->
size
<=
0
)
{
return
0
;
//顺序表为空 无法删除
}
else
if
(
i
<
0
||
i
>
L
->
size
-
1
)
{
return
0
;
//传入的参数i不合法
}
else
{
*
X
=
L
->
list
[
i
];
/*保存删除的元素到参数X中*/
for
(
j
=
i
+
1
;
j
<=
L
->
size
-
1
;
j
++
)
L
->
list
[
j
-
1
]
=
L
->
list
[
j
];
/* 删除元素的位置之后的元素向前移 0 1 2 3 4 5 --> 0 2 3 4 5 */
L
->
size
=
L
->
size
-
1
;
/*数据元素个数减1*/
return
1
;
}
}
/**
* @description: 取顺序表L中第i个数据元素的值存于X中
* @param {struct *}L
* @param {LIST_DATA_TYPE *}X
* @return {int}
*/
int
ListGet
(
SeqList
*
L
,
int
i
,
LIST_DATA_TYPE
*
X
)
{
if
(
i
<
0
||
i
>
L
->
size
-
1
)
{
return
0
;
//传入的参数i不合法
}
else
{
*
X
=
L
->
list
[
i
];
return
1
;
}
}
/**
* @description: 测试顺序表
*/
void
TestSeqList
()
{
SeqList
L
;
int
i
;
LIST_DATA_TYPE
value
;
InitList
(
&
L
);
for
(
i
=
0
;
i
<
3
;
i
++
)
{
ListInsert
(
&
L
,
i
,
i
+
1
);
}
ListGet
(
&
L
,
0
,
&
value
);
printf
(
"value%d=%d
\n
"
,
0
,
value
);
ListGet
(
&
L
,
1
,
&
value
);
printf
(
"value%d=%d
\n
"
,
1
,
value
);
ListGet
(
&
L
,
2
,
&
value
);
printf
(
"%value%d=%d
\n
"
,
2
,
value
);
ListDelete
(
&
L
,
0
,
&
value
);
ListDelete
(
&
L
,
1
,
&
value
);
ListDelete
(
&
L
,
2
,
&
value
);
}
\ No newline at end of file
includes/SeqList.h
0 → 100644
浏览文件 @
470b7220
/*
* @Description: 顺序表
* @Author: 大熊人
* @Date: 2020-10-26 19:42:26
* @LastEditTime: 2020-10-26 22:44:37
*/
#define MaxSize 50
#define LIST_DATA_TYPE int
/* 顺序表结构体类型 */
typedef
struct
SeqList
{
LIST_DATA_TYPE
list
[
MaxSize
];
//定义一个存储数据的数组
int
size
;
//元素个数
}
SeqList
;
void
InitList
(
SeqList
*
L
);
int
ListInsert
(
SeqList
*
L
,
int
i
,
LIST_DATA_TYPE
X
);
int
ListDelete
(
SeqList
*
L
,
int
i
,
LIST_DATA_TYPE
*
X
);
int
ListGet
(
SeqList
*
L
,
int
i
,
LIST_DATA_TYPE
*
X
);
void
TestSeqList
();
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录