(1) 顺序线性表的定义
#define maxsize 100
typedef struct{
int aa[maxsize];
int size;
}Sqlist;
(2)栈的定义
#define STACK_INIT_SIZE 100
typdef struct
{ int *P1; //p1指向栈底的元素
int *P2; //p2指向栈顶的元素的上一个元素,因此在向栈压入元素时候,必须先插入后改变指针
int stacksize;
}Sqstack ;
栈的第二种定义:
const int MAXSIZE = 栈的最大容量;
typedef struct {
DataType elem[MAXSIZE];
int top;
} SqStack;
栈的相关操作算法:
1、int InitStack(Sqstack s)
{
s.p1=(int*)malloc(STACK_INIT_SIZE *Sizeof(int));
s.p2=s.p1;
s.stacksize=STACK_INIT_SIZE;
return 1;
}
2、int Push(Sqstack &S,int a)
{
*s.top=a;
s.top++;
}
3、int Pop(Sqatack &s,int a)
{
if(s.top=s.bottom) return 0;
s.top--;
a=*s.top
}
(2)队列的定义
第一:循环线性队列
循环队列的类型定义: