C#数据结构(用链表实现的队列)
1 using System;
2 class Link
3 {
4 public int data;
5 public Link next;
6 public Link(int data)
7 {
8 this.data=data;
9 }
10 }
11 class LinkList
12 {
13 public Link head;
14 public Link rear;
15 public LinkList()
16 {
17 this.head=null;
18 this.rear=null;
19 }
20
21 public void InsertRearLink(int data)
22 {
23 Link newLink = new Link(data);
24 if(head==null)
25 head=newLink;
26 else
27 rear.next=newLink;
28 rear=newLink;
29 }
30 public void DelHeadLink()
31 {
32 if(head==null)
33 return;
34 else
35 head=head.next;
36 }
37 public void Display()
38 {
39 Link current = head;
40 while(current!=null)
41 {
42 Console.WriteLine(current.data);
43 current = current.next;
44 }
45 }
46 }
47 class Queue
48 {
49 private LinkList linklist;
50 public Queue()
51 {
52 this.linklist=new LinkList();
53 }
54 public void Insert(int data)
55 {
56 linklist.InsertRearLink(data);
57 }
58 public void Remove()
59 {
60 linklist.DelHeadLink();
61 }
62 public void Display()
63 {
64 linklist.Display();
65 }
66 }
67 class QueueApp
68 {
69 static void Main()
70 {
71 Queue queue = new Queue();
72 queue.Insert(5);
73 queue.Insert(2);
74 queue.Insert(1);
75 queue.Insert(8);
76 queue.Remove();
77 queue.Display();
78 Console.ReadKey();
79 }
80 }
81
2 class Link
3 {
4 public int data;
5 public Link next;
6 public Link(int data)
7 {
8 this.data=data;
9 }
10 }
11 class LinkList
12 {
13 public Link head;
14 public Link rear;
15 public LinkList()
16 {
17 this.head=null;
18 this.rear=null;
19 }
20
21 public void InsertRearLink(int data)
22 {
23 Link newLink = new Link(data);
24 if(head==null)
25 head=newLink;
26 else
27 rear.next=newLink;
28 rear=newLink;
29 }
30 public void DelHeadLink()
31 {
32 if(head==null)
33 return;
34 else
35 head=head.next;
36 }
37 public void Display()
38 {
39 Link current = head;
40 while(current!=null)
41 {
42 Console.WriteLine(current.data);
43 current = current.next;
44 }
45 }
46 }
47 class Queue
48 {
49 private LinkList linklist;
50 public Queue()
51 {
52 this.linklist=new LinkList();
53 }
54 public void Insert(int data)
55 {
56 linklist.InsertRearLink(data);
57 }
58 public void Remove()
59 {
60 linklist.DelHeadLink();
61 }
62 public void Display()
63 {
64 linklist.Display();
65 }
66 }
67 class QueueApp
68 {
69 static void Main()
70 {
71 Queue queue = new Queue();
72 queue.Insert(5);
73 queue.Insert(2);
74 queue.Insert(1);
75 queue.Insert(8);
76 queue.Remove();
77 queue.Display();
78 Console.ReadKey();
79 }
80 }
81

浙公网安备 33010602011771号