数据结构
一、线性结构
(一)数组
1.在内存中连续存储一组相同类型的数据项
2.代码示例
int[] numbers = new int[5] { 1, 2, 3 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}
返回结果
1
2
3
(二)链表
1.有一系列节点组成,每个节点包含数据部分和指向下一个节点的指针
2.代码示例
LinkedList<int> linkedList = new LinkedList<int>();
linkedList.AddFirst(1);
linkedList.AddLast(2);
foreach (int value in linkedList)
{
Console.WriteLine(value);
}
返回结果
1
2
(三)栈
1.遵循后进先出原则的线性数据结构
2.代码示例
Stack<int> stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
while (stack.Count > 0)
{
Console.WriteLine(stack.Pop());
}
返回结果
2
1
(四)队列
1.遵循先进先出原则的线性数据结构
2.代码示例
Queue<int> queue = new Queue<int>();
queue.Enqueue(1);
queue.Enqueue(2);
while (queue.Count > 0)
{
Console.WriteLine(queue.Dequeue());
}
返回结果
1
2
二、非线性结构
(一)树
1.是一种层次化的数据结构,有节点组成,每个节点包含数据和n>=1子节点的引用
3.代码示例
public class TreeNode
{
public int Value { get; set; }
public List<TreeNode> Children { get; set; }
public TreeNode(int value)
{
Value = value;
Children = new List<TreeNode>();
}
}
(二)图
1.在计算机科学中,是一种数据结构,用于表示由节点(Vertex)和边(Edge)组成的集合。
2.代码示例
public class Graph
{
public Dictionary<int, List<int>> AdjacencyList { get; set; }
public Graph()
{
AdjacencyList = new Dictionary<int, List<int>>();
}
}