Új hozzászólás Aktív témák

  • Lacces

    őstag

    Srácok, volt egy beadandó feladat, LáncoltLista C#-ban... (no comment) megoldottam magam módján, de az egyik esetben szeretnék egy szebb megoldást, a többi esetben, ha van valakinek tippje, hogyan lehet átírni rövidebb alakra, optimalizálni, azt is nagyon szívesen fogadom, sőt igénylem a jó tanácsokat :)

    Osztály implementáció a legvégén.

    Szépíteni kellene, amit úgy értek elsősorban, hogy megpróbáltam egy másik while ciklusban megírni - ami kommentelve volt - de az úgy nekem nem működött (akkor csak két elemet kaptam vissza), Működik a kód, csak csúnya
    public bool AddLast(int val)
    {
    // Write your code here
    if (Head == null)
    {
    Head = new Node(val);
    Size++;
    return true;
    }
    else
    {
    Node current = new Node(val);
    Node previous = Head;
    int i = 1;
    while (i < Size)
    {
    previous = previous.Next;
    i++;
    }/*
    while(previous.Next.Next!=null){
    previous.Next = previous.Next.Next;
    }*/
    previous.Next=current;
    Size++;
    return true;
    }
    }

    Ezeket lehet-e másképp implementálni? (vagy optimalizálni)

    public bool AddFirst(int val)
    {
    // Write your code here
    Node current = new Node(val);
    current.Next = Head;
    Head = current;
    Size++;

    if (Head == current)
    return true;
    else
    return false;
    }

    public bool RemoveAll(int val)
    {
    // Write your code here
    bool result = false;
    if (Head == null) return false;
    if (Head.Value == val)
    {//does head contain the value
    Head = Head.Next;
    Size--;
    result = true;
    }
    Node Prev = Head;
    while ((Prev.Next != null))
    {//actually checking prev.next if it contains the value
    if (Prev.Next.Value == val)
    {
    Prev.Next = Prev.Next.Next; //remove link from prev to prev.next
    Size--;
    result = true;
    }
    else
    {
    Prev = Prev.Next;
    }
    }
    return result;
    }

    Osztály Implementáció:

    class MyLinkedList
    {
    public int Size { get; private set; }

    Node Head { get; set; }

    class Node
    {
    public int Value { get; private set; }
    public Node Next { get; set; }

    public Node(int val)
    {
    Value = val;
    }
    //... metódusok

Új hozzászólás Aktív témák