1. 数组:数组是一种线性数据结构,它包含相同类型的元素。数组的每个元素都有一个唯一的索引或键,用于访问和修改该元素。在大多数编程语言中,数组的大小是固定的,一旦创建就不能更改。
2. 链表:链表也是一种线性数据结构,但与数组不同的是,它的元素在内存中并不是连续存储的。每个元素都包含一个指向下一个元素的引用(也称为指针)。链表可以动态地添加和删除元素,而不需要移动其他元素。
3. 栈:栈是一种特殊的数据结构,它遵循后进先出(LIFO)的原则。这意味着最后添加到栈中的元素将是第一个被移除的元素。栈通常用于实现递归算法、函数调用等。
4. 队列:队列是一种遵循先进先出(FIFO)原则的数据结构。新元素总是被添加到队列的末尾,而要移除的元素则从队列的开头移除。队列常用于处理需要等待的任务,例如打印任务或网络请求。
5. 树:树是一种非线性数据结构,它由节点和边组成。每个节点都可以有零个或多个子节点,除了根节点没有父节点外,每个节点都只有一个父节点。树的常见应用包括文件系统、表达式解析和二叉查找树。
6. 图:图是由节点(也称为顶点)和边组成的非线性数据结构。边可以是有向的(从一个节点指向另一个节点)或无向的(连接两个节点)。图的常见应用包括社交网络、路由算法和网页排名算法(如Google的PageRank)。