AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Generische Liste sortieren (ohne .NET)

Ein Thema von lincore · begonnen am 29. Dez 2008 · letzter Beitrag vom 29. Dez 2008
Antwort Antwort
Benutzerbild von lincore
lincore

Registriert seit: 27. Dez 2008
Ort: Bad Segeberg
26 Beiträge
 
Delphi 2009 Professional
 
#1

Generische Liste sortieren (ohne .NET)

  Alt 29. Dez 2008, 16:28
Moin,
ich schreibe gerade eine generische Listenklasse, die ein array of T kapselt. Nun würde ich gerne eine universell verwendbare Methode implementieren, um die Liste zu sortieren. Soweit ich weiß, lassen sich Operatoren nur mit .NET überladen (welches ich nicht verwende). Andere Möglichkeiten wollen mir als Anfänger auch nicht einfallen.

Weiß jemand eine Lösung?
lincore


PS: Hier das Interface meiner Klasse (soweit):
Delphi-Quellcode:
const
  TOP_OF_LIST = -255; // equals system.high(mArray)

type
  TGenericList<T> = class
  private
    mArray: array of T;
    //mError: boolean;
    mErrorMsg: string;
    mCount: integer;
    function auxRearrange(fromPosition: integer = TOP_OF_LIST;
                       insertion: boolean = true; freeSpace: integer = 1): boolean;
    function getData(index: integer): T;
    procedure setData(index: integer; element: T);

  public
    constructor create();
    procedure clear();

    function assign(list: TGenericList<T>): boolean;

    function insert(element: T; index: integer): boolean; overload;
    function insert(list: TGenericList<T>; index: integer = TOP_OF_LIST;
                    from: integer = 0; til: integer = TOP_OF_LIST): boolean;
                    overload;

    function remove(index: integer): boolean; overload;
    function remove(first, last: integer): boolean; overload;

    function push(element: T): boolean;
    function pop(): T;

    function length(): integer;
    function high(): integer;
    function notEmpty(): boolean;

    function first(var element: T): boolean;
    function next(var element: T): boolean;
    function last(var element: T): boolean;

    property error: string read mErrorMsg;
    property data[index: integer]: T read getData write setData;
  end;
Wenn Stallman eines Tages mit Zornesröte im Gesicht und blutverschmierter Klinge vor deiner Tür steht, behaupte nicht ich hätte dich nicht gewarnt.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Generische Liste sortieren (ohne .NET)

  Alt 29. Dez 2008, 16:33
Du brauchst noch einen Komparator, den du im Konstruktor mitgibst. Das wäre zum Beispiel eine TFunc<T, T, Integer> (oder wie ihr Delphianer das schreibt).
  Mit Zitat antworten Zitat
Benutzerbild von lincore
lincore

Registriert seit: 27. Dez 2008
Ort: Bad Segeberg
26 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Generische Liste sortieren (ohne .NET)

  Alt 29. Dez 2008, 16:38
Danke für den Tipp!
Mir ist die Delphi-Syntax zur Zeit mindestens ebenso fremd wie dir, aber ich glaube ich habe verstanden :)
Jetzt muss ich nur noch herausfinden, wie die Griechen mit Funktionsvariablen umgehen, aber das wird Dank der hoffnungslos überladenen Delphi-Hilfe sicher kein Problem sein.
Wenn Stallman eines Tages mit Zornesröte im Gesicht und blutverschmierter Klinge vor deiner Tür steht, behaupte nicht ich hätte dich nicht gewarnt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz