1.多个表并存,表长度发生动态变化,表的总数也可能发生变化,采用哪种存储表示?
采用链表
如果采用顺序表,在多个表并存的情况下,一旦发现有某个表存满并溢出的情况,需要移动其他表腾出位置为其扩充空间,导致大片数据迁移,浪费时间,操作复杂,容易出错,
如果表的总数发生变化,需要开辟新表的空间,释放旧表空间
如果采用链表,在内存空间足够的情况下,各个表的空间分配或者释放不受其他表的影响
2.表的总数基本稳定,很少进行插入和删除,要求以最快的速度存取表中元素,采用哪种存储表示?
采用顺序表。表的总数稳定,且很少进行插入和删除,顺序表可以充分发挥其存取速度快,存储利用率高的优点
3.为什么在单循环链表汇总设置尾指针 比设置头指针好?
尾指针是指向终端节点的指针,用它来表示单循环链表可以使得查找链表的开始节点和终端节点都很方便,
设立一个带头结点的单循环链表,其尾指针是rear,则开始节点和终端节点分别是指针rear所指节点的后继节点的后继节点,和指针rear指向的节点,即rear->next->next和rear
查找时间均为o(1),
如果用头指针来表示链表,则查找开始节点为o(1),终端节点为o(n)
1.头指针和头结点区别,头结点与开始节点关系
链式存储结构表示线性表时,链表的头指针指向第一个节点,发挥标识链表的作用
头结点作用:统一相关操作,例如对链表中第一数据元素节点前插入节点和删除第一节点,这些操作就和其他节点统一了
头结点的数据域一般没有意义,某些情况下可以存放链表长度,
如果链表含有头结点,无论链表是否为空,头指针均不为空
开始节点就是链表中存储数据的第一个节点,它是头结点后边的第一个节点