Datakurser
Aktuell vecka: 13

Tillbaka till toppen

C# Enkellänkad lista

Inledning



Ett litet exempel

Vi lägger till virtual på metoden skriv_ut_data .

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LinkedList
{
class Elev
{
// här deklareras gömda (utanför objektet) variabler och metoder som "private"
private string namn;
private int points;
public Elev next;

public virtual void skriv_ut_data()
{
Console.WriteLine("\nElevnnamn: " + namn + " Poäng: " + points);
}

// Konstruktorer
public Elev()
{
namn = "ingen";
points = 0;
next = null;
}

public Elev(string n, int p)
{
namn = n;
points = p;
next = null;
}
public Elev(string n, int p, Elev nextelev)
{
namn = n;
points = p;
next = nextelev;
}
}
//*****************************************************************
// HUVUDPROGRAMMET
class Program
{

static Elev lagg_till_forst(ref Elev e, string s, int y)
{
return new Elev(s,y,e);
}
static void lagg_till_sist(Elev e, string s, int y)
{
while (e.next != null) e = e.next;
e.next=new Elev(s, y);
}

static void Main(string[] args)
{
Elev start = null, x = null;
// Skapar studenterna.
start = new Elev("Janne Långben", 2, null);
start.next = new Elev("Kalle Anka", 3, null);
start.next.next = new Elev("Musse Pigg", 1, null);

for (x = start; x != null; x = x.next)
{
x.skriv_ut_data();
}
Console.ReadLine();
//#######################################################
start = null;
start = lagg_till_forst(ref start, "Janne Långben", 2);
start = lagg_till_forst(ref start, "Kalle Anka", 3);
start = lagg_till_forst(ref start, "Musse Pigg", 1);

for (x = start; x != null; x = x.next)
{
x.skriv_ut_data();
}
Console.ReadLine();
//#######################################################
lagg_till_sist(start, "Uppfinnarjocke", 123);
for (x = start; x != null; x = x.next)
{
x.skriv_ut_data();
}
Console.ReadLine();
}
}
}


Övningar

Övning 1:
Man skall kunna göra följande med listan :
- lägga in element först i listan
- lägga in element sist i listan
- lägga in element efter ett visst element
- lägga in element före ett visst element (onödigt men är svårare att skapa och bra övning)
- ta bort ett av elementen i listan (kan vara första , något i mitten eller sista), utnyttja destruktorn
- skriva ut listan
- söka efter ett visst element och tala om på vilken plats i listan elementet befinner sig

Övning 2:
Man skall kunna göra följande med listan :
     - lägga in element i listan, listan ska alltid vara sorterad (i stigande ordning)
     - ta bort element i listan, utnyttja destruktorn
     - skriva ut listan
     - söka efter ett visst element och tala om på vilken plats i listan elementet befinner sig

Källor

Skarp programmering med C#, 2011, Jan Skansholm

Microsoft Visual C# 2010, 2010, John Sharp