usuwanie PLAEBY4PFGVN4VWO2Q6OA56EET4BCQG24YVSCQA


Projekt nr 3

autor: Dorota Kochanowska

Temat: Usuwanie elementu z listy dwukierunkowej

Program ten demonstruje zasady działania listy dwukierunkowej oraz usuwania z niej elementów. Po uruchomieniu i wyświetleniu swojego nagłówka program udostępnia kilka opcji: co to jest lista dwukierunkowa, jak usunąć jej pierwszy, ostatni, znajdujący się wewnątrz element oraz wyjście z programu. Jeśli wybierzemy którąś z opcji informacyjnych zostaną wyświetlone informacje oraz rysunek na dany temat.

Listing

plik „dorota.c”

#include <stdio.h>

#include "dorota.h"

main()

{

int a;

int b,tabw[4]={15,23,22,23};

printf("\n\n\tProjekt nr 3\n\tautor: Dorota Kochanowska\n\n");

printf("Program ilustruje sposob usuwania elementu z listy dwukierunkowej.\n");

do

{

printf("\n\tWybierz\n\n\t1. Co to jest lista dwukierunkowa.");

printf("\n\t2. Usuwanie pierwszego elementu z listy.");

printf("\n\t3. Usuwanie ostatniego elementu z listy.");

printf("\n\t4. Usuwanie elementu znajdujacego sie wewnatrz listy.");

printf("\n\t5. Wyjscie z programu.\n :");

fflush(stdin);

scanf("%d",&a);

if (a!=5)

{

for (b=0;b<tabw[a-1];b++)

{

if (a==1) printf("%s\n",tab1[b]);

if (a==2) printf("%s\n",tab2[b]);

if (a==3) printf("%s\n",tab3[b]);

if (a==4) printf("%s\n",tab4[b]);

}

printf("Koniec - k, Menu - ENTER\n : ");

fflush(stdin);

a=getchar();

}

else

a='k';

}

while (a!='k');

}

plik „dorota.h”

char tab1[15][70]={" Lista dwukierunkowa (podwojna) ",

" ",

" Elementem listy dwukierunkowej jest struktura. Zawiera ona przy- ",

"najmniej trzy skladowe. Pierwsza z nich to np. skladowa typu 'char', ",

"w ktorej bedzie przechowywane nazwisko. Dwie pozostale skaldowe sa ",

"typu 'wskaznik'. Pierwszy wskaznik zawiera adres struktury, ktora ",

"kolejnym elementem listy, a drugi zawiera adres, ktory jest poprzed- ",

"nim elementem listy. ",

" .-----------. .-----------. .-----------. ",

" | nazwisko1 |<-. .->| nazwisko2 |<-. .->| nazwisko3 | ",

" |-----------| | | |-----------| | | |-----------| ",

" | nastepny |--|--' | nastepny |<-|--' | NULL | ",

" |-----------| | |-----------| | |-----------| ",

" | NULL | `-----| poprzedni | `-----| poprzedni | ",

" `-----------' `-----------' `-----------' "};

char tab2[23][70]={" Usuwanie pierwszego elementu listy ",

" ",

" Aby usunac pierwszy element z listy dwukierunkowej nalezy do ",

"skladowej 'poprzedni' drugiego elementu listy wstawic NULL.Nastep- ",

"nie nalezy zwolnic pamiec zajmowana przez pierwszy element listy. ",

"Jezeli uzywamy w programie wskaznik na pierwszy element listy to na- ",

"lezy go uaktualnic. ",

" ",

".--------. .-----------. .-----------. .-----------. ",

"|pierwszy|-->| nazwisko1 |<-. .->| nazwisko2 |<-. .->| nazwisko3 | ",

"`--------' |-----------| | | |-----------| | | |-----------| ",

" | nastepny |--|--' | nastepny |<-|--' | NULL | ",

" |-----------| | |-----------| | |-----------| ",

" | NULL | `-----| poprzedni | `-----| poprzedni | ",

" `-----------' `-----------' `-----------' ",

" .-------------------. ",

".--------. | .-----------. | .-----------. .-----------. ",

"|pierwszy|-' | | `->| nazwisko2 |<-. .->| nazwisko3 | ",

"`--------' |-----------| |-----------| | | |-----------| ",

" | | | nastepny |<-|--' | NULL | ",

" |-----------| |-----------| | |-----------| ",

" | | | NULL | `-----| poprzedni | ",

" `-----------' `-----------' `-----------' "};

char tab3[22][70]={" Usuwanie ostatniego elementu listy ",

" ",

" Aby usunac ostatni element z listy dwukierunkowej nalezy do ",

"skladowej 'nastepny' przedostatniego elementu listy wstawic NULL. ",

" Nastepnie nalezy zwolnic pamiec zajmowana przez ostatni element ",

"listy. ",

" ",

" .-----------. .-----------. .-----------. ",

" | nazwisko1 |<-. .->| nazwisko2 |<-. .->| nazwisko3 | ",

" |-----------| | | |-----------| | | |-----------| ",

" | nastepny |--|--' | nastepny |--|--' | NULL | ",

" |-----------| | |-----------| | |-----------| ",

" | NULL | `-----| poprzedni | `-----| poprzedni | ",

" `-----------' `-----------' `-----------' ",

" ",

" .-----------. .-----------. .-----------. ",

" | nazwisko1 |<-. .->| nazwisko2 | | | ",

" |-----------| | | |-----------| |-----------| ",

" | nastepny |--|--' | NULL | | | ",

" |-----------| | |-----------| |-----------| ",

" | NULL | `-----| poprzedni | | | ",

" `-----------' `-----------' `-----------' "};

char tab4[23][70]={" Usuwanie elementu znajdujacego sie wewnatrz listy. ",

" Aby usunac element znajdujacy sie wewnatrz listy dwukierunkowej ",

"nalezy do skladowej 'nastepny' elementu poprzedzajacego element kaso-",

"wany wstawic adres elementu nastepujacego po kasowanym. Poza tym w ",

"polu 'poprzedni' elementu nastepujacego po kasowanym nalezy wstawic ",

"adres elementu poprzedzajacego element kasowany. Potem nalezy ",

"zwolnic pamiec zajmowana przez element kasowany. ",

" .-----------. .-----------. .-----------. ",

" | nazwisko1 |<-. .->| nazwisko2 |<-. .->| nazwisko3 | ",

" |-----------| | | |-----------| | | |-----------| ",

" | nastepny |--|--' | nastepny |<-|--' | NULL | ",

" |-----------| | |-----------| | |-----------| ",

" | NULL | `-----| poprzedni | `-----| poprzedni | ",

" `-----------' `-----------' `-----------' ",

" .--------------------. ",

" .-----------. | .-----------. | .-----------. ",

" | nazwisko1 |<-. | | | `->| nazwisko3 | ",

" |-----------| | | |-----------| |-----------| ",

" | nastepny |--|--' | | | NULL | ",

" |-----------| | |-----------| |-----------| ",

" | NULL | | | | .----| poprzedni | ",

" `-----------' | `-----------' | `-----------' ",

" `---------------------' "};



Wyszukiwarka

Podobne podstrony:
Usuwanie zmian naczyniowych(2) ppt
istan Usuwania smieci, BHP, Instrukcje-Stanowiskowe
Usuwanie skórek na paznokciach(1), kosmetologia, Makijaż(1)
Usuwanie postaci w tle
cw usuwanie cyjanków
PORADY USUWANIE TRUDNYCH PLAM
Usuwanie rozstępów
ZWIĄZKI REFRAKCYJNE I METODY ICH USUWANIA ZE ŚCIEKÓW, Technologia Wody i Ścieków
Usuwanie programów startujących wraz z Vistą, KOMPUTER - SERWIS - EDUKACJA, 02 Windows Vista
usuwanie niewymierności z mianownika
ćw 7 usuwanie fosforu ze ścieków
STER 2 2 4 sesja usuwanie czynnika
Usuwanie rys i zadrapań z lakierów samoch
Usuwanie?rwy ścieku metodą?sorpcji na węglu aktywnym sprawko
Usuwanie informacji zapisanych w plikach (Windows7)
usuwanie strzałek
etyczne apekty usuwania ciąży
Usuwanie zbędnych odstępów w komórkach

więcej podobnych podstron