数据结构笔记一 线性表
来源:互联网 发布:滇红58淘宝 编辑:程序博客网 时间:2024/06/10 09:52
以前数据结构没学好,现在从新操刀数据结构,一步一步走好。今天学了数据结构的最简单的一种:线性表
线性表,顾名思义,不用看书都知道是数据呈线性排列,一个接一个,虽然逻辑结构简单,但是实际的物理存储还是有区别的:线性表存储有两种方式,顺序结构存储和链式结构存储
先看看顺序存储结构,就是在内存中是一个接一个顺序存放的,访问和修改可以用数组的方式进行,我们把这个结构定义为:
#define MAXSIZE 100;
typedef struct{
listdata[MAXSIZE];
int len;}
为了重用的灵活性,这里listdata在主函数中定义,len为线性表的当前数据个数
然后就是操作线性表的函数了:
初始化线性表:
void init_list(list * p_list)
{
p_list->len = 0;
}
判断线性表是否为空:
int if_list_empty(list * p_list)
{
return(p_list->len == 0);
}
寻找下标为i的元素并读取值:
int search_listdata_by_i(list * p_list,int i,data *e)
{
if(i < 0 || i > p_list->len - 1 )
return 0;
*e = p_list->listdata[i];
return 1;
}
通过给定的值寻找下标:
int search_i_by_listdata(list * p_list,data *e)
{
int i;
for(i = 0;i <= p_list->len;i++)
if(p_list->listdata[i] == *e)
return i;
return -1;
}
插入:
int insert_to_list(list * p_list,data *e,int i)
{
int j;
if(i < 0 || i > p_list->len - 1)
return 0;
for(j = p_list->len;j >= i;j--)
p_list->listdata[j+1] = p_list->listdata[j];
p_list->len++;
p_list->listdata[i] = *e;
return 1;
}
删除某个元素:
int del_from_list(list * p_list,int i)
{
int j;
if(i < 0 || i > p_list->len - 1 || if_list_empty(p_list))
return 0;
for(j = i; j <= p_list->len; j++)
p_list->listdata[j] = p_list->listdata[j + 1];
p_list->len--;
return 1;
}
返回数组长度和清空线性表:
int return_len(list * p_list)
{
return p_list->len;
}
int clear_list(list * p_list)
{
p_list->len = 0;
}
这段代码好处就是可以重用,所以写成一个.h头文件也可以。代码很简单,没什么很难理解的地方。
还有链表,这个要麻烦点了,因为链表分很多种了,单链表,循环链表,双链表等,总之呢就是在数据结构的定义里面改一下就是了:
typedef struct nudo{
data nudodata;
struct nudo * next;
}* p_nudo;
至于操作的函数嘛,也是很简单的,知道了原理,操作还会远吗?
- 数据结构笔记一 线性表
- 数据结构-----线性表学习笔记(一)
- 数据结构学习笔记(一)---------线性表线性存储
- 数据结构(一)-----线性表
- [数据结构笔记-线性表]
- 数据结构笔记-----线性表
- 数据结构笔记--线性表
- 数据结构笔记---线性表
- 数据结构笔记--线性表
- 【数据结构】学习笔记(一)——线性表
- 数据结构与算法之线性表(一)(笔记)
- (笔记)数据结构2.1-线性表及其实现(一)
- 数据结构复习一:线性表
- 数据结构之线性表一:
- 数据结构之线性表一
- 数据结构(一)---线性表
- 数据结构(一)线性表
- [数据结构]线性表(一)
- SqlDataAdapter;DataSet;DataTable;DataTableCollection 关联
- javascript对字符串进行html编码
- 为什么大多数创业公司会失败?
- IRP数据结构
- apache访问/var/www之外的目录没权限的问题(万恶的SELinux)
- 数据结构笔记一 线性表
- js,javascript实现base64加密
- 深入理解char [] 和 char * ,const char[]和 const char*--反汇编分析
- linux命令大全
- MINA框架中原生态心跳支持
- jquery查找对应元素的form表单,并进行表单提交
- 实用的Ubuntu快捷键参考手册
- 转行与创业之路 (1)
- (转)编程高手与调试高手