Recent Changes - Search:

Oktatás

* Programozás 1
  + feladatsor
  + GitHub oldal

* Szkriptnyelvek
  + feladatsor
  + quick link

Teaching

* Programming 1 (BI)
  ◇ exercises
  ◇ quick link

* Scripting Languages
  ◇ exercises
  ◇ quick link

teaching assets


Félévek

* aktuális (2023/24/2)
* archívum


Linkek

* kalendárium
   - munkaszüneti napok '20
* tételsorok
* jegyzetek
* szakdolgozat / PhD
* ösztöndíjak
* certificates
* C lang.
* C++
* C#
* Clojure
* D lang.
* Java
* Nim
* Scala


[ edit | logout ]
[ sandbox | passwd ]

C /

listába beszúrás rendezetten

#############################

A listát úgy építjük fel, hogy az új elemet egy rendezett listába tesszük be úgy, hogy a rendezettség az elem beszúrása után is megmaradjon.

#include <stdio.h>
#include <stdlib.h>

typedef struct listaelem
{
    int adat;
    struct listaelem *kov;
} LISTAELEM;

LISTAELEM *fej = NULL;

/* ************************************* */

void rendezetten_beszur(int szam)
{
    LISTAELEM *elozo = NULL;
    LISTAELEM *akt = fej;

    LISTAELEM *uj = (LISTAELEM *)malloc(sizeof(LISTAELEM));
    uj->adat = szam;
    uj->kov = NULL;

    if (fej == NULL) {
        fej = uj;
    }
    else
    {
        while (!((akt == NULL) || (akt->adat > szam))) {
            elozo = akt;
            akt = akt->kov;
        }
        if (elozo != NULL)
        {
            elozo->kov = uj;
        }
        else {
            fej = uj;
        }
        uj->kov = akt;
    }
}

void bejar(LISTAELEM *fej)
{
    LISTAELEM *akt = fej;

    while (akt != NULL)
    {
        printf("%d, ", akt->adat);
        akt = akt->kov;
    }
    printf("\n");
}

int main()
{
    int tomb[] = {1, 8, 5, 9, 2, 3, 4, 9};
    int meret = sizeof(tomb) / sizeof(int);
    int i;

    /* tömb elemei */
    printf("beszúrandó elemek: ");
    for (i = 0; i < meret; ++i) {
        printf("%d ", tomb[i]);
    }
    printf("\n");
    puts("");

    /* elemek beszúrása rendezetten */
    for (i = 0; i < meret; ++i) {
        rendezetten_beszur(tomb[i]);
    }

    /* a listában az elemek rendezetten szerepelnek */
    printf("a lista elemei: ");
    bejar(fej);

    return 0;
}

A fenti program a köv. kimenetet produkálja:

beszúrandó elemek: 1 8 5 9 2 3 4 9 

a lista elemei: 1, 2, 3, 4, 5, 8, 9, 9, 
Cloud City

  

Blogjaim, hobbi projektjeim

* The Ubuntu Incident
* Python Adventures
* @GitHub
* heroku
* extra
* haladó Python
* YouTube listák


Debrecen | la France


[ edit ]

Edit - History - Print *** Report - Recent Changes - Search
Page last modified on 2015 May 09, 15:02