Škôlka jazyka C

Fórum o programovaní v jazyku C založené 3. januára 2012

Aktuálny čas je 02 Máj 2024, 23:08

Všetky časy sú v GMT + 1 hodina




Fórum je zamknuté Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.  [ Príspevok: 1 ] 
Autor Správa
PoslaťNapísal: 26 Feb 2014, 09:23 
Offline
Stredoškolák
Stredoškolák
Obrázok užívateľa

Registrovaný: 06 Jan 2012, 19:26
Príspevky: 458
Bydlisko: pod Pátrovom
Udelené body: 228 bodov
Získané body: 21 bodov
Príklad kódu:
Kód:
#include <stdio.h>
#include <stdlib.h>

// definovanie prvku pola
typedef struct prvok {
  int hodnota;
  struct prvok *dalsi;
} TPrvok;

// prida novy prvok v poradi do pola (aj prvy), (aj na koniec pola)
void *pridaj_prvok(TPrvok **z, TPrvok **k, int cislo)
{
    TPrvok *p;

    if (*z == NULL) {
        *z = (TPrvok*)malloc(sizeof(TPrvok));
        (*z)->hodnota = cislo;
        (*z)->dalsi = NULL;
        *k = *z;
    }
    else {
        p = (TPrvok*)malloc(sizeof(TPrvok));
        p->hodnota = cislo;
        p->dalsi = NULL;
        (*k)->dalsi = p;
        *k = p;
    }
}

// prida prvok na zaciatok pola
void pridaj_na_zaciatok(TPrvok **z, int cislo)
{
    TPrvok *novy = (TPrvok*)malloc(sizeof(TPrvok));

    novy->hodnota = cislo;
    novy->dalsi = *z;
    *z = novy;
}

// vypise pole prvkov
void vypis(TPrvok *p)
{
    while (p != NULL) {
        printf ("\nprvok: %d ",  p->hodnota);
        p = p->dalsi;
    }
}

int main(void)
{
    int i;
    TPrvok *z, *k, *p;

    // vytvori dynamicky alokovany zretazený zoznam s 10 polozkami (pre ilustraciu)
    z = k = NULL;
    for (i = 1; i <= 10; i++) // môzes si to zmenit na 1000
        pridaj_prvok(&z, &k, i);

    vypis(z);

    // prida prvok na koniec
    printf("\n\nZadaj cislo, ktore vlozim na koniec zoznamu: ");
    scanf("%d", &i);
    pridaj_prvok(&z, &k, i);

    vypis(z);

    // pridaj prvok na zaciatok
    printf("\n\nZadaj cislo, ktore vlozim na koniec zoznamu: ");
    scanf("%d", &i);
    pridaj_na_zaciatok(&z, i);

    vypis(z);

    return 0;
}

Veľmi dobre je to popísané na tejto stránke.
Sú tam aj ďalšie funkcie na využitie takého zoznamu.

_________________
kódy píšem na platforme: linux Ubuntu 12.04 (Geany, Code::Blocks), WinXP (Code::Blocks, PsPad editor),
Skype: libcokamo, ICQ: 56312279
Ak treba, napíš mi na libcosenior@gmail.com. To mám v mobile a stále po ruke.


Detaily príspevku Upozorniť užívateľa
Hore
 Profil  
 
Zobraziť príspevky z predchádzajúceho:  Zoradiť podľa  
Fórum je zamknuté Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.  [ Príspevok: 1 ] 

Všetky časy sú v GMT + 1 hodina


Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť


Rýchla úprava:
Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre
Nemôžete zasielať súbory v tomto fóre

Hľadať:
Skočiť na:  
cron
Powered by phpBB® Forum Software © phpBB Group

Hosted by FreeSpace SK