一.线性表
线性表有顺序存储结构和链式存储结构
1.顺序结构
顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。
顺序表储存结构
const int MAX=100;
struct seqlist{
char a;
int length;
}
创建空表
void creatlist(seqlist *l,int n){
for(int i=1;i<=n;i++){
cin>>l->a[l->length];
(l->length)++;
}
cout<<"成功建立顺序表"<<endl;
}
- 链式储存
线性表的链式存储结构可以用任意存储单元(这里存储单元的物理位置可以是连续的,也可以是不连续的)来存储线性表的数据元素。
链式表储存结构
struct linklist {
char m;
struct linklist *next;
}
创建空链表
void creatlist(linklist *head,int n){
linklist *s,*a=head;
for(int i=0;i<n;i++){
s=(linklist*)malloc(sizeof(linklist));
cin>>s->m;
s->next=NULL;
a->next=s;
a=s;
}
return;
}
二.队列与栈
队列是一种特殊得线性表,一种只可以头或者尾操作的线性表。
1.队列
在c++中可以通过头文件#include<queue>在直接使用队和对的一些基本操作
queue < int > q //建立一个队列 q,其内部元素类型是 int
q.empty()//如果队列为空返回true,否则返回false
q.size()//返回队列中元素的个数
q.pop()//删除队列首元素但不返回其值
q.front()//返回队首元素的值,但不删除该元素
q.push()//在队尾压入新元素
q.back()//返回队列尾元素的值,但不删除该元素
2.栈
栈是一种特殊得线性表,一种只可以头或者尾操作的线性表。
在c++中可以通过头文件#include<stack>在直接使用栈和对的一些基本操作
stack < int > s //建立一个栈 s,其内部元素类型是 int。
s.push(a)//将元素 a 压进栈 s。
s.pop()//将 s 的栈顶元素弹出。
s.top()//查询 s 的栈顶元素。
s.empty()//查询 s 是否为空。
s.size()//查询 s 的元素个数。