首页> 攻略 > 数据结构《栈和队列》,你值得一看的技巧

数据结构《栈和队列》,你值得一看的技巧

时间:2021-01-13 17:03:56 编辑:天晴网友

栈是限定在表尾进行插入和删除操作的线性表,表头端称为栈底。(LIFO后进先出的特点)
队列是一种先进先出的线性表(FIFO),只允许在表的一端进行插入,在另一端进行删除,插入一端称为队尾,删除一端称为队头。
可以在两端进行插入删除操作的线性表城位置双端队列。

操作方法

01

入栈:
push(sqstack &S,Selemtype e)
{
if(s.top-s.base >= s.stacksize)
{
s.base = (elemtype *)realloc(s.base,s.stacksize+STACKINCREAMENT)*sizeof(elemtype));
if(!s.base) exit(overflow)
s.top = s.base+s.stacksize;
s.stacksize += STACKINCREAMENT;
}
*s.top ++ = e;
return OK;
}

02

出栈:
pop(sqstack &s,selemtype e)
{
if(s.top == s.base) return ERROR;
e = *--s.top;
return OK;
}

03

进队:
enqueue(linkQueue &Q,qelemtype e)
{
p = (queueptr)malloc(sizeof(qnode));
if(!p) exit(overflow)
p->data = e;p->next=null;
Q.rear-next = p;
Q.rear = p;
return OK;
}

04

出队:
DEqueue(linkqueue &Q,qelemtype e)
{
if(Q.front==Q.rear) retrun error;
p = Q.front->next;
e= p->data;
Q.front->next=p->next;
if(Q.rear == p) Q.front=Q.rear;
free(p);
return OK;
}

好了,以上就是大致内容了,(END)

相关文章

相关软件