1. 栈、队列、线性表的区别与联系(异同)
答:
栈和队列联系:逻辑结构都是线性结构;存储结构都可以采用顺序存储结构和链式存储结构;他们的数据元素都呈线性关系,是一种的线性表,且只允许在端点处插入和删除元素
栈、队列和线性表联系:栈和队列都是一种操作受限的线性表。
区别:线性表可以在中间和两端任何地方插入和删除元素,而栈只能在同一端插入和删除元素,具有后进先出的特点、队列只允许在一段插入元素,另一端删除元素,具有先进先出的特点。
2. 顺序栈和链栈判空、满的条件?
答:
顺序栈(初始化top = -1);(初始化top = 0)
进栈:s[++top]=x ;s[top++]=x
出栈:x=s[top--] ;x=s[--top]
判空:top==-1 ; top == 0
判满:top==maxsize-1 ; top==maxsize (静态分配的)
链栈(带头结点初始化head->next=NULL) ----- 不考虑满的情况(因为是动态分配的)
栈空:head->next==NULL(出栈同理单链表删除第