C#数据结构与算法揭秘二 线性结构


在C#中,线性结构是数据结构的基础,主要包括数组(Array)、链表(LinkedList)、栈(Stack)和队列(Queue)等。这些结构按照元素之间的线性顺序组织数据。下面我将简要介绍这些结构及其在C#中的基本用法。

### 1. 数组(Array)

数组是最简单的线性结构,它允许你存储固定数量的同类型元素。在C#中,数组可以是多维的。


int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int num in numbers)
{
    Console.WriteLine(num);
}

### 2. 链表(LinkedList)

链表是另一种线性数据结构,但与数组不同,链表中的元素在内存中不必连续存储。链表中的每个元素都包含数据部分和指向列表中下一个元素的引用(或链接)。C#的`System.Collections.Generic`命名空间提供了`LinkedList`类。


using System.Collections.Generic;

LinkedList<int> linkedList = new LinkedList<int>();
linkedList.AddLast(1);
linkedList.AddLast(2);
linkedList.AddLast(3);

foreach (int item in linkedList)
{
    Console.WriteLine(item);
}

### 3. 栈(Stack)

栈是一种后进先出(LIFO, Last In First Out)的数据结构。它只允许在栈顶进行添加(push)或删除(pop)元素的操作。C#的`System.Collections.Generic`命名空间提供了`Stack`类。


Stack<int> stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
stack.Push(3);

while (stack.Count > 0)
{
    Console.WriteLine(stack.Pop());
}

### 4. 队列(Queue)

队列是一种先进先出(FIFO, First In First Out)的数据结构。它允许在队尾添加元素,在队首删除元素。C#的`System.Collections.Generic`命名空间提供了`Queue`类。


Queue<int> queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
queue.Enqueue(3);

while (queue.Count > 0)
{
    Console.WriteLine(queue.Dequeue());
}

以上是对C#中几种常见线性结构的简要介绍和示例代码。这些结构在数据结构与算法的学习中占有重要地位,它们为更复杂的数据结构和算法提供了基础。