1、为空条件
单链表:头结点指针域next==NULL
静态链表:数组最后一个元素值为0
循环链表:头结点的指针域指向它本身(循环查找时以p->next !=头结点作为遍历结束条件)
栈
顺序存储时:top==-1
链式存储时:top==NULL
队列(队头出队、队尾入队)
①顺序存储
队列 front==rear
循环队列 front==rear
②链式存储
链队列 front、rear均指向头结点
2、为满条件
单链表、循环链表:不存在
静态链表:根据数组长度来判断
栈
顺序存储时:top==数组大小-1
链式存储时:不存在
队列
①顺序存储
队列 可能假溢出
循环队列 (rear+1)% QueueSize == front
②链式存储
链队列 不存在
#include<stdioh>
#include<iostream>
using namespace std;
#include<malloch>
typedef char ElemType;
typedef struct node
{
ElemType data;
struct node next;
} LinkStack;
void InitLinkStack (LinkStack & s)
{
s=(LinkStack )malloc(sizeof(LinkStack));
s->next=NULL;
}
int IsEmptyLinkStack (LinkStack s)
{
return (s->next==NULL);
}
void PushLinkStack(LinkStack &s , ElemType x)
{
LinkStack p;
p=(LinkStack)malloc(sizeof(LinkStack));
p->data=x;
p->next=s->next;
s->next=p;
}
int PopLinkStack (LinkStack & s, ElemType &x)
{
LinkStack p;
if(s->next==NULL)
return 0;
p=s->next;
x=p->data;
s->next=p->next;
free(p);
return 1;
}
int GetLinkStackTop (LinkStack s, ElemType &x)
{
if(s->next==NULL)
return 0;
x=s->next->data;
cout<<x;
/printf("%c",x);/
return 1;
}
int main()
{
LinkStack L;
char m[99];
int i=0;;
InitLinkStack(L);
gets(m);
while(m[i]!='#')
{
PushLinkStack(L,m[i]);
GetLinkStackTop(L,m[i]);
i++;
}
return 0;
}
请参考
以上就是关于问题:链表,栈,队列(循环队列)判定满或者空的条件急求全部的内容,包括:问题:链表,栈,队列(循环队列)判定满或者空的条件急求、如何判断栈满和栈空、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)