1、若进栈序列为1,2,3,4,进栈的过程中可以出栈,则下列不可能的一个出栈序列是()
- A、3,4,2,1
- B 3,1,4,2
- C 1,4,3,2
- D 2,3,4,1
答案:B
析:栈空间是先进后出,后进先出。B选项,3若要先出,则栈中肯定有,3,2,1三个,因此下一个出栈的只能是2或者4。
2、采用链表的方式完成队列的插队和出队,参阅下述结构体:
typedef struct _QUEUE_NODE_
{
struct _QUEUE_NODE_ *pNextNode; //下一个结点指针
void *pData; //结点数据
}QUEUE_NODE,*PQUEUE_NODE;
typedef struct
{
QUEUE_NODE *pHeadNode; //头指针
QUEUE_NODE *pTailNode; //尾指针
}QUEUE_HANDLE,*PQUEUE_HANDLE;
注:
队列 (Queue) ,是一种先进先出 (First In First Out ,简称 FIFO) 的线性表。只允许在表的一端进行插入,而在另一端进行删除。
队首 (front) :允许进行删除的一端称为队首。
队尾 (rear) :允许进行插入的一端称为队尾。
知识点:数据结构 —— 队列、栈、链表的区别
//插队
void Insert_Queue