数据结构有多种分类,试论述数据结构各种分类的异同。
参考答案:从关系或结构分,数据结构可以归结为线性结构、树形结构、图形结构和集合结构四类。
线性结构有线性表、栈和队列等结构。
线性表是由n(n>=0)个数据元素组成的一个有限序列。线性表可以进行存取、插入、删除、合并、分解、查找、排序等操作。非空线性表的特点是存在唯一一个没有前驱的数据元素和唯一一个没有后继的数据元素,此外,每一个元素都有一个直接前驱和一个直接后继。
栈是一种特殊的线性表,这种线性表上的插入与删除运算人为地规定在表的一端进行。栈的特点是“先进后出”。
队列是只允许在一端进行插入元素,而在另一端进行删除元素的线性表。队列的特点是“先进先出”。
树形结构是一种简单的非线性结构。树中所有数据元素之间的关系具有明显的层次特性,即树是一种层次结构。树中至少有一个结点,树中各子树是互不相交的集合。除了根节点外,每个结点只有一个前驱结点和多个后继结点。
图形结构是比树形结构更复杂的数据结构。任何两个结点之间可能有直接的关系,所以图中一个结点的前驱和后继的数量是没有限制的。
集合结构指的是在数据元素之间除了“同属一个集合”之外,别无其他关系。