文章目录
栈
//top指向栈顶元素所在位置
typedef struct{
int data[MAXSIZE];
int TOP;
}SqStack;
int data[MAXSIZE];
TOP=-1;
if(TOP==MAXSIZE-1)
S.data[++TOP]=e;
if(TOP==-1)
S.data[TOP--]=x;
if(TOP==-1)
S.data[TOP]=x;
typedef struct Linknode{
int data;
struct Linknode *next;
}*LiStack;
//带头结点
S=new Linknode;
S->next=NULL;
Linknode *p=new Linknode;
p->data=e;
r->next=p
r=p;
r->next=NULL;
if(S->next==NULL)
x=S->next->data;
Linknode *p=S->next;
S=S->next;
delete p;
x=S->next->data;
//带头结点
S=NULL;
Linknode *p=new Linknode;
p->data=x;
//第一个元素S=p;
r->next=p;
r=p;
r->next=NULL;
队列
typedef struct{
int data[MAXSIZE];
int front,rear;
}SqQueue;
与rear指向位置的结合
typedef struct Linknode{
int data;
struct Linknode *next;
}Linknode;
typedef struct{
Linknode *front,*rear;
}LiQueue;
栈和队列的应用、特殊数组
栈可以用来十进制转二进制,余数进栈,倒序输出就是二进制
也要注意,原数组下标是0\1开始,这个用来计算,前面有几行,用来铺垫计算,前面有多少个数字,这两个可以来回结合,注意计算