数据结构—线性表的顺序表示与实现
来源:互联网 发布:宝宝学加减法软件 编辑:程序博客网 时间:2024/05/06 08:26
计算机内部线性表存储方式:
1、顺序存储:顺序表
2、链式存储:链表
顺序表示是指:
用一组地址连续的存储单元依次存储线性表的数据元素;
过程分析:
假设线性表的每个数据元素需要占用x个存储单元,并以所占的第一个单元的存储地址作为数据元素起始的存储位置,因为使用一组连续的存储单元,所以下一个数据元素的位置就是当前首地址向后偏移x个单元即可,所以可以这样表示
存储位置LOC(ai+1) = LOC(ai) + x;
所以也就意味着如果我们要操作第6个元素,而一个数据元素的长度为x,所以我们所要找的第六个元素的地址就是起始位置向后偏移L = (6-1)* x;
相关操作代码实现:
1、保存数据结构的定义:
struct Data()
{
int nums; //数据里面的元素组成(可以定成好多个);
};
struct list()
{
Data ListData[顺序表的最大长度+1]; // 保存顺序表的数组;
int ListLen;//顺序表已存节点数;
};
list *lis = new list();
2、初始化顺序表:
void InitList(list *l)
{
l->ListLen = 0;
}
3、顺序表长度
int LenList(list *l)
{
return l->ListLen;
}
4、添加节点
int AddCode(list *l, Data data)
{
if (l->ListLen >= Max)
return 0;
else
l->ListData[++l->ListLen] = data;
return 1;
}
5、插入节点
int Insert(list *l, int n, Data data)
{
if (l->ListLen >= Max)
return 0;
if (n < 1 || n > l->ListLen-1)
return 0;
for (int i(l->ListLen); i >= n; --i)
l->ListData[i+1] = l->ListData[i];
l->ListData[n] = data;
l->ListLen++;
return 0;
}
6、删除节点
int Delete(list *l, int n)
{
if (n < 1 || n > l->ListLen+1)
return 0;
for (int i(n); i < l->ListLen; ++i)
l->ListData[i] = l->ListData[i+1];
l->ListLen--;
return 0;
}
7、通过序号查找
Data *FindByNum(list *l, int n)
{
if (n < 1 || n > l->ListLen+1)
return 0;
return &(l->ListData[n]);
}
8、通过关键字查找
Data *FindByKey(list *l, char *key)
{
for (int i(0); i <= l->ListLen; ++i)
if (Strcmp(l->ListData[i].key, key) == 0)
return i;
return 0;
}
8、输出顺序表
void Show(list *l)
{
for (int i(0); i <= l->ListLen; ++i)
printf("%d\n", l->ListData[i].nums);
return;
}
0 0
- 数据结构—线性表的顺序表示与实现
- 重温数据结构-线性表的顺序表示与实现
- 《数据结构》---线性表的顺序表示与实现
- 数据结构算法代码实现——线性表的顺序表示与实现(二)
- 线性表的顺序表示与实现
- 线性表的顺序表示与实现
- 线性表的顺序表示与实现
- 线性表的顺序表示与实现
- 数据结构(C语言版) 线性表顺序表示与实现
- 数据结构 线性表 顺序表示和实现
- 数据结构之:线性表的顺序表示和实现
- 线性表的顺序表示和实现 - 数据结构
- 数据结构1:线性表的顺序表示和实现
- 数据结构之线性表的顺序表示和实现
- 【数据结构】-线性表的顺序表示和实现
- 线性表的顺序表示和实现(数据结构)
- 数据结构(1):线性表的顺序表示和实现
- 数据结构---线性表的顺序表示和实现
- hdu2089不要62(数位dp)
- C语言正则表达式详解 regcomp() regexec() regfree()详解
- 归并排序
- Fragment源码解析
- 文章标题
- 数据结构—线性表的顺序表示与实现
- 递归锁
- 抽象类和方法
- string::npos的一些说明
- Android开发规范
- 文章标题
- 实用小工具---显示图像点坐标和点的rgb值
- 广义表
- fileparts使用,切分文件得到路径及后缀