Lineární spojový seznam
#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
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
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.
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.
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.
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?
Další články autora |
Atentát na Fica. Slovenského premiéra postřelili
Slovenského premiéra Roberta Fica ve středu postřelili. K incidentu došlo v obci Handlová před...
Fico je po operaci při vědomí. Ministr vnitra mluví o občanské válce
Slovenský premiér Robert Fico, který byl terčem atentátu, je po operaci při vědomí. S odkazem na...
Fica čekají nejtěžší hodiny, od smrti ho dělily centimetry, řekl Pellegrini
Zdravotní stav slovenského premiéra Roberta Fica je stabilizovaný, ale nadále vážný, řekl po...
Pozdrav z lůžka. Expert Antoš posílá po srážce s autem palec nahoru
Hokejový expert České televize Milan Antoš, kterého v neděli na cestě z O2 areny srazilo auto, se...
Putinova časovaná bomba. Kadyrov umírá, rozjíždí se krvavý boj o trůny
Premium Ramzan Kadyrov ještě dýchá, v Čečensku se však už začíná hledat jeho nástupce. Naznačují to i...
Řekni, kde ti muži z Gazy jsou. Otazníky ohledně obětí: násobně více dětí a žen
Premium V Gaze je problém, na který upozorňovala už Marlene Dietrichová. Teď si s ní notují demografové a...
Češi umějí vyrobit řadu vojenských dronů. Ale armáda o ně nestojí
Premium Letecká výroba byla v České republice vždy na špičkové úrovni. Menší dopravní letouny, ultralighty,...
Gruzínská prezidentka vetovala „ruský“ zákon. Jde do boje s vládou
Gruzínská prezidentka Salome Zurabišviliová podle tiskových agentur vetovala kontroverzní zákon o...
Izraelský válečný kabinet se bortí. Ganc označil Netanjahuovy plány za fanatické
Člen izraelského válečného kabinetu Benny Ganc v sobotu řekl, že jeho strana přestane podporovat...
Prodej domu v Chrastavě
Víta Nejedlého, Chrastava, okres Liberec
4 500 000 Kč
- Počet článků 35
- Celková karma 0
- Průměrná čtenost 1383x