栈和队列
栈:仅在表的一端进行插入和删除的操作的线性表,允许插入删除操作的一段叫做栈顶,另一端称为栈底。不含任何元素的占成为空栈,由于只在栈顶操作所以数据有先进后出的特性,用链表实现的时候用链表的表头作为栈顶比较容易进行操作,运用头插和通过头节点删除很方便如果用链尾的话删除会很费劲删除一个之后没法继续找之前的点。
队列:只允许在一端进行插入操作,另一端进行删除插入的一端称为队尾另一端称为队头,先进先出。
链队列
struct codd
{
int n;
codd *next;
};
class linsta
{
codd *first,*last;
public:
linsta();
void pushd(int x);
void popd();
void print(){
for(codd *i=first->next;i;i=i->next)
{
cout<<i->n<<' ';
}
cout<<endl;
}
};
linsta::linsta(){
first=new codd;
first->next=NULL;
last=first;
}
void linsta::pushd(int x){
codd *s=new codd;
s->n=x;
last->next=s;
last=s;
last->next=NULL;
}
void linsta::popd(){
codd *j;
if(first->next!=NULL)
{
j=first->next;
first->next=j->next;
delete j;
}
}