static void insertNode(Node head, int Num)
{
Node pre;
Node e = new Node();
Console.WriteLine("请输入待插入节点的值:");
e.name = Console.ReadLine();
pre = head;
//先检索到要插入的节点处
for (int i = 0; i < Num-1; i++)
{
pre = pre.next;
}
e.next = pre.next;
pre.next = e;
}
static void deleteNode(Node head, int Num)
{
Num -= 1;
Node pre;
pre = head;
//先检索到要删除的节点处
for (int i = 0; i < Num - 1; i++)
{
pre = pre.next;
if (pre == null)
{
Console.WriteLine("要删除的节点可能不在链表中!删除失败");
return;
}
}
pre.next = pre.next.next;
}
static void insertHead(ref Node head,string str)
{
Node e = new Node();
e.name = str;
e.next = head;
head = e;
}
继续上贴,再写三个操作函数,分别是插入节点,删除节点,插入头节点
这三个函数的基本思路都是“断开再连接”,插入头结点可以算是一种比较特殊插入节点,大家可以自己想一下
删除尾节点的操作
亲们可以帮忙找下其中有没有bug,谢谢大家
明天将继续给出栈和队列的代码 |