算法导论 - 基于 C# 的链表实现
链表(Linked List)是一种重要的基础数据结构,由一系列节点(Node)组成,每个节点包含数据和指向下一个节点的指针。链表与数组不同,链表中的元素在内存中不是连续存储的,插入和删除操作更为高效。链表主要有三种类型:单向链表(Singly Linked List)、双向链表(Doubly Linked List)和循环链表(Circular Linked List)。本文将介绍如何在 C# 中实现单向链表。
链表(Linked List)
单向链表由一系列节点组成,每个节点包含两个部分:数据部分和指向下一个节点的指针。链表的第一个节点称为头节点(Head),最后一个节点的指针指向 null。
链表的操作
- InsertAtHead:在链表头部插入元素。
- InsertAtTail:在链表尾部插入元素。
- Delete:删除指定元素。
- Find:查找指定元素。
- PrintList:打印链表中的所有元素。
链表的代码实现
下面是单向链表的 C# 代码实现:
using System;
public class Node<T>
{
public T Data {
get; set; }
public Node<T> Next {
get; set; }
public Node(T data)
{
this.Data = data;
this.Next = null;
}
}
public class SinglyLinkedList<T>
{
private Node<T> head;
public SinglyLinkedList()
{
head = null;
}
public void InsertAtHead(T data)
{
Node<T> newNode = new Node<T>(data);
newNode.Next