多语言展示
当前在线:1359今日阅读:103今日分享:49

数据结构《栈和队列》

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

入栈: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;}

2

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

3

进队: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;}

4

出队: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;}

推荐信息