• Hallo
    Habe folgendes unter Pascal Programmiert jedoch soll das in C geschrieben werden kann mir einer helfen?

    interface
    type Value = integer;
    VProc = procedure(v : Value);
    List = ^ElemR;
    ElemR = record
    val : Value;
    next : List;
    end;
    twoLists = record
    l1 : List;
    l2 : List;
    end;
    procedure insertend ( rec : list; var first,last : list );
    function mixsort( var l : list ) : list;
    function merge ( l1, l2 : list ) : list;
    function mix ( l1, l2 : list ) : list;
    function split(l : List) : twoLists;
    function getLenght(l : List) : Value;
    ...
    function getLenght(l : list):integer;
    var counter : longint; // Variableninitialisation
    finish : boolean;
    begin
    finish := false; // Endvariable auf false setzen
    counter := 0; // Zählvariable auf 0 setzen
    while(finish = false) do // solange Ende nicht erreicht
    begin
    if(tail(l) = nil) then finish := true else // Wenn aktuelles Elemement = letztes Element
    l := tail(l); // Erstes Element entfernen und
    counter := counter + 1; // die Zählvariable erhöhen
    end; // while
    getLenght := counter; // die Länge zurückgeben
    end; //getLenght
    procedure insertend ( rec : list; var first,last : list );
    begin
    if first = nil then first := rec else last^.next := rec;
    last := rec;
    end;
    function merge( l1, l2 : list ) : list;
    var first, last, temp : list;
    begin
    first := init;
    last := init;
    while l2 <> nil do
    if l1 = nil then begin l1 := l2; l2 := nil end
    else begin
    if l2^.val > l1^.val then
    begin temp := l1; l1 := l1^.next end
    else begin temp := l2; l2 := l2^.next end;
    temp^.next := nil;
    insertend( temp, first, last )
    end;
    insertend( l1, first, last );
    merge := first
    end;
    function mixsort( var l : list) : list;
    var temp : list;
    listen : twoLists;
    n : integer;
    begin
    n := getLenght(l);
    if (l = nil) then mixsort := nil else if n>1 then
    begin
    listen := split(l);
    mixsort := merge( mixsort( listen.l1 ), mixsort( listen.l2 ));
    end
    else
    begin
    temp := l;
    l := l^.next;
    temp^.next := nil;
    mixsort := temp;
    end
    end;
    function mix (l1, l2: List) : List;
    var tmplst : List;
    begin
    tmplst := merge(l1, l2);
    mix := mixsort(tmplst);
    end; // mix

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!