Premium

Získejte všechny články mimořádně
jen za 49 Kč/3 měsíce

Lineární spojový seznam

Jsem studentem ČZU , obor SyI. V předmětu Programování jsme dostali úkol vytvořit program v jazyku C. Jeho náplní je přidání položky na a pak do seznamu (první úkol) a po té odstranění položky seznamu (další ) . Tyto dva úkoly jsem spojil. Protože po mě ho chce až moc lidí , tak ho raději zveřejim . Chci tak předejít plagiátorství . Když to někdo celé zkopíruje a odevzdá tak jak je , je to jeho blbost . Tohle je pravé umění !! btw myslim , že přes některý kompilátory to neprojde )) Jsem asi fakt ďábel.  ZDROJOVÝ KÓD :::

#include <stdio.h>
#include <stdlib.h>
// Hynek Darbujan SYi , codeblocks ,odstraneni polozky ze seznamu + nacteni ,verze snad 100.Je to dost  moje práce.
// dost mne inspirovala stranka - http://cs.wikipedia.org/wiki/Spojový_seznam ,hlavne vlozeni , pozdeji jsem podle toho upravil strukturu tak aby to trochu "vypadalo "
//
typedef struct sp_seznam
{
int data;
struct sp_seznam *next;
} uzel;
//pridani//
uzel *pridat_na_seznam (uzel **p, int i)
{
uzel *n = NULL;
if (p) {
n = malloc(sizeof(uzel)); // vymezeni pameti
if (n) {
n->data = i;
n->next = *p;
*p = n;
}
}
return n;
}
void vypis_seznam (uzel *n) // fuknce pro vypis
{
if (!n) {  // kontrola seznamu
printf("seznam je prazdny\n");
return;
}
while (n) {  // vypis obsahu
printf("print %d\n", n->data);
n = n->next;
}
}
uzel *vloz_do (uzel **p, int i, int index)
{
uzel *n = NULL;
if (p) {
if (*p) {   // jestli p neni prazdne
uzel *r = NULL; // namíření na zacatek
uzel *s = *p; // propojeni
int idx = 0; // pro porovnani na zacatek
while (s) {
if (idx == index) { //vlozte sem - index. kam chceme
n = malloc(sizeof(uzel)); // vymezeni pameti
if (n) {
n->data = i;
if (r) {
n->next = r->next;  // vychytavka - vlozeni mezi r a r-next
r->next = n;
} else {
n->next = *p;  //dalsi
*p = n;
}
}
return n;
}
idx++; // dalsi
r = s;
s = s->next;
}
if (idx == index) {  // vlozit na konec - omezeni k
n = malloc(sizeof(uzel)); // vycleneni
if (n) {
n->data = i;
n->next = NULL;
r->next = n;
}
}
} else {
if (!index) { // vlozit na vrchol - omezeni h
n = malloc(sizeof(uzel));  // vycleneni
if (n) {
n->data = i;
n->next = NULL;
*p = n;
}
}
}
}
return n;
}
uzel **hledej_smudlo (uzel **n, int o) // funce na vyhledavani
{
if (n) {
while (*n) {
if (o==0) return n;
o--;// pocet cyklu
n = &(*n)->next;
}
}
return NULL;
}
void odstran(uzel **p)
{
if (p && *p) {
uzel *n = *p;
*p = (*p)->next;
free(n);
}
}
int main (void)
{
uzel *n = NULL; // na zacatek
int cislo;
int l=0;
int h=0;
int pozice;
char pozn;
pozn=0;
// naplneni seznamu
printf("jestli chcete naplnit seznam automaticky , tak zmackni 1 , jetsli ne ,tak neco jineho \n");
scanf("%d",&cislo);
if (cislo==1){
pridat_na_seznam(&n, 01);
pridat_na_seznam(&n, 12);
pridat_na_seznam(&n, 23);
pridat_na_seznam(&n, 34);
pridat_na_seznam(&n, 45);
pridat_na_seznam(&n, 56);
h=6;} // nastaveni max poctu
else {
while(cislo !=9999){
flush(cislo);
printf("zadej cislo do seznamu , az jich budes mit dost napiš 9999:\n");
scanf("%d",&cislo);
if(cislo !=9999){
pridat_na_seznam(&n,cislo);
h++;
}
}}
vypis_seznam(n);
int qw;
printf("jestli chces pridavat polozku napis 1 , jestli mazat , tak neco jinyho, jestli chces skoncit tak zmacni ten krizek vpravo nahore v rohu \n");
scanf("%d",&qw);
if (qw==1)
{
printf("zadej cislo na vlozeni do seznamu\n");
if (scanf("%d",&cislo)!=1)

{
printf("cislo ! program bude ukoncen");
return 0;}
printf("pozici pro cislo v seznamu (0 az n), vyssi cislonez je pocet polozek bude vlozeno na konec seznamu , seznam je vypsan sestupne \n");
if (scanf("%d",&pozice)!=1)
{ return 0; }
vloz_do(&n,cislo,pozice);
vypis_seznam(n);
printf("!finito!");
} else {
printf("zadej číslo polozky , co chces odstranit (0-n) , cislovani je odshora dolů \n");
if (scanf("%d",&pozice)!=1)
{ return 0;}
odstran(hledej_smudlo(&n, pozice));
vypis_seznam(n);
printf("!finito!");
return 0;}
}
int flush() {  // funkce na vycisteni
char c;
c = getchar();
while (c != '\n' && c != EOF) {
c = getchar();
}
}

 

dodatek : jasně ,že nejsem suprprogramátor , řekl bych , že mi to někdy vůbec nejde )) ale to neznamená , že jsem tohle nedělal se nadšením :-D , btw , jestli tam mám nějaký chyby , tak sem s nima - ale nechi , žádný urážky -, nebo něco ve stylu , že napíšete , kde je chyba , ale nedáte sem její řešení , to mi je k ničemu .

Tvorbou programů se neživim a ani asi nebudu ))....jsem říkal , že jsem ďábel

ps. znáte vtipy v cčku ? tak tohle je jeden z nich :-D

-edit. poučení č1 - nedávat názvy proměnných jen písmenka - třeba fakt názvy

Autor: Hynek Dařbujan | středa 5.5.2010 19:21 | karma článku: 11,37 | přečteno: 2859x
  • Další články autora

Hynek Dařbujan

Vyplnění kontrolního hlášení DPH přes Excel !

V podstatě jde o to abyste mohli nakopírovat excel tabulku list 1 do složky A4 tabulku z listu 2 do složky B5. Jednoduchý jako facka, ne? :-D

23.5.2016 v 17:37 | Karma: 8,64 | Přečteno: 1008x | Diskuse| Osobní

Hynek Dařbujan

Tak, kdy se mi má to dítě narodit? Vyber si!

"Dvacátého sedmého, nebo prvního se má narodit?", ptá se mě má sestra sedící v kuchyni. Nechápavě se ptám: "Co tim myslíš?", až potom, co doplní svou otázku, si uvědomím, že je o ní rozhodnuto, aby rodila císařským řezem a vybírá termín.

4.10.2014 v 12:40 | Karma: 9,62 | Přečteno: 826x | Diskuse| Ostatní

Hynek Dařbujan

Armáda Evropské unie

Dne 6. 3. jsem byl v Evropském domě, který je na Národní třídě v Praze, na semináři "Jak se dostat do armády Evropské unie". Chtěl bych se tímto s vámi podělit o zážitky.

7.3.2014 v 20:10 | Karma: 15,31 | Přečteno: 737x | Diskuse| Ostatní

Hynek Dařbujan

Problém s instalací Skype na linuxu [vyřešeno]

Většina distribucí založená na linuxu je i bez znalosti příkazové řádky (tzv. terminálu) použitelná jako bezplatná alternativa komerčních operačních systémů. Jestli něco může od změny odradit, je několik pro "běžného smrtelníka" neřešitelných problémů, které vyžadují větší znalosti systémů založených na linuxu. Tady je jeden z nich.

2.2.2013 v 20:33 | Karma: 9,20 | Přečteno: 1792x | Diskuse| Ostatní

Hynek Dařbujan

Havel byl taky umělec a docela to s ním šlo, ne?

Jsme malý národ, ale věřím, že se správnými vůdci to dokážeme ostatním pořádně zavařit. Kdo se toho má bát? My, nebo oni?

15.11.2012 v 18:15 | Karma: 14,36 | Přečteno: 933x | Diskuse| Politika
  • Nejčtenější

Nahá umělkyně za zvuků techna házela před dětmi hlínou. Už to řeší policie

3. května 2024  10:10,  aktualizováno  13:43

Policie prošetřuje vystoupení, ke kterému došlo na Akademii výtvarných umění (AVU). Umělkyně a...

Stovky amerických obrněnců se v řádu dnů nepozorovaně přemístily do Česka

2. května 2024  17:21

Několik set vozidel americké armády včetně obrněnců Bradley nebo transportérů M113 se objevilo ve...

Německo je otřeseno. Přišel brutální útok na politika, pak následoval další

4. května 2024  17:40,  aktualizováno  21:09

Na lídra kandidátky německé sociální demokracie (SPD) v Sasku do evropských voleb Matthiase Eckeho...

Vyváděla strašné věci. Zahradil označil Jourovou za nejhorší z eurokomisařů

4. května 2024

Premium Když Česko vstoupilo 1. května do Evropské unie, byl tam matador ODS Jan Zahradil kooptován...

Auto vyjelo z vozovky a srazilo tři lidi. Žena zemřela, dvě vnučky jsou zraněné

2. května 2024  16:40,  aktualizováno  3.5 12:38

Osobní auto srazilo dnes odpoledne v Čáslavicích na Třebíčsku ženu a dvě děti. Žena srážku...

Ani vás nepustí do haly. Podvodů při prodeji lístků na MS v hokeji přibývá

6. května 2024

Organizátoři i policie varují: Kupovat vstupenky na mistrovství světa v hokeji od někoho jiného než...

Katar plánuje vyhoštění lídrů Hamásu, ale není kam. Jordánsko je zpět nechce

6. května 2024

Premium Katar je místo, kde si lídři teroristické organizace Hamás léta užívali pětihvězdičkového luxusu....

Za bydlení politiků platíme tisíce, vládní byty a vily mnozí z nich nevyužívají

6. května 2024

Premium Stát jen za tento rok zaplatí za bydlení v Praze mimopražského ministra školství Mikuláše Beka...

Izrael zavřel hraniční přechod do Pásma Gazy. Humanitární pomoc tam končí

5. května 2024  14:36,  aktualizováno  22:53

Izraelská armáda v neděli oznámila, že po ostřelování uzavírá hraniční přechod Kerem Šalom, určený...

Nespí vaše dítě? Přečtěte si, jak nespavost vyřešit
Nespí vaše dítě? Přečtěte si, jak nespavost vyřešit

Nespavost a problémy se spánkem se v různé míře objevují až u 30 % dětí. Mohou se projevovat častým buzením, problémy s usínáním, brzkým vstáváním...

  • Počet článků 35
  • Celková karma 0
  • Průměrná čtenost 1383x
Autor je borec. Studuje Českou zemědělskou univerzitu v Praze . Obor Systémové inženýrství . Čáslavský rodák . Uživatel linuxu a analerginu. Elektrikář .Flegmatik . Vášnivý kuchař Občas nezbedný syn ještě nezbednějšího otce , Hynda ,Pinďa , Strašnej sajař , bigbíťák . ...... To a nejen to je Hynek Dařbujan jr.!!