单链表节点:
namespace linkedlistrec.Link{
public class Node<T> {
public T data;
public Node<T> next;
public Node(T data, Node<T> next = null){
this.data = data;
this.next = next;
}
}
}
单链表类:
using System;
namespace linkedlistrec.Link {
public class LinkedList {
public Node<int> head;
public LinkedList(int n){
head = null;
if(n>0){
int i = 1;
Node<int> rear,temp;
head = new Node<int>(i++);
rear = head;
while(i<=n){
temp = new Node<int>(i++);
rear.next = temp;
rear = temp;
}
}
}
public bool isEmpty() {
return head == null;
}
public bool isFull() {
return false;
}
public int Length() {
int i = 0;
Node<int> temp = head;
while(temp != null){
i++;
temp = temp.next;
}
return i;
}
public Node<int> index(int i) {
if(i<=0) {
return null;
}
int j = 0;
Node<int> temp = head;
while(temp!=null && j<i) {
j++;
temp = temp.next;
}
return temp;
}
public int get(int i) {
Node<int> temp = index(i);
if(temp!=null){
return temp.data;
}else {
return -32768;
}
}
public bool set(int i, int k){
Node<int> temp = index(i);
if(temp!=null){
temp.data = k;
return true;
}
return false;
}
public void output(Node<int> p) {
while(p!=null){
Console.Write(p.data+" ");
p = p.next;
}
Console.WriteLine();
}
public void output(){
outputrec(head);
}
public void outputrec(Node<int> p) {
if(p!=null){
Console.Write(p.data+ " ");
outputrec(p.next);
}else{
Console.WriteLine();
}
}
}
}
主程序:
using System;
using linkedlistrec.Link;
namespace linkedlistrec
{
class Program
{
static void Main(string[] args)
{
LinkedList lList = new LinkedList(9);
lList.output();
}
}
}
程序输出: