1、
线性表 :线性关系
2、
顺序表 链表(单向链表 双向链表 单向循环链表 双向循环链表) 栈 队列
(1)逻辑结构:线性结构
(2)存储结构://有两种方式可以选择
1)顺序存储 --->数组
2)链式存储 --->链表
(3)线性表的特点
一对一,每个节点最多一个前驱和一个后继
首尾节点特殊:首节点无前驱 ,尾节点无后继
顺序表
逻辑结构:线性结构
存储结构:顺序存储结构 在内存当中存储是连续的 数组
顺序表操作:
1.创建空的顺序表
2.指定位置插入数据
3.判断表是否满
4.指定位置删除数据
5.判断表是否为空
6.遍历顺序表
#ifndef _SEQLIST_H_
#define _SEQLIST_H_
#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct
{
int data[N];
int last;//last代表的是数组中最后一个有效元素的下标
}seqlist_t;
//1.创建一个空的顺序表
seqlist_t *CreateEpSeqlist();//返回的是申请空间的首地址
//2.向顺序表的指定位置插入数据
int InsertIntoSeqlist(seqlist_t *p, int post,int data);//post第几个位置,data插入的数据
//3.遍历顺序表sequence 顺序 list 表
void ShowSeqlist(seqlist_t *p);
//4.判断顺序表是否为满,满返回1 未满返回0
int IsFullSeqlist(seqlist_t *p);
//5.判断顺序表是否为空
int IsEpSeqlist(seqlist_t *p);
//6.删除顺序表中指定位置的数据post删除位置
int DeletePostSeqlist(seqlist_t *p, int post);
//7.清空顺序表
void ClearSeqList(seqlist_t *p);
//8.修改指定位置的数据
int ChangePostSeqList(seqlist_t *p,int post,int data);//post被修改的位置,data修改成的数据
//9.查找指定数据出现的位置
int SearchDataSeqList(seqlist_t *p,int data);//data代表被查找的数据
#endif