• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Stive [C]

2
  • Publicat de Coss
  • în C/C++
  • — 10 apr., 2010 at 8:00 am

Stiva este o structura de date abstracta, in care se retin date, cu scopul de a le folosi in ordine inversa introducerii. Folosind un limbaj mai tehnic, putem defini o stiva ca fiind o lista de tip LIFO (Last In First Out). Pentru a intelege mai bine aceasta notiune ne putem imagina stiva ca pe un turn de cuburi. Putem lua numai cubul din varf, pentru ca daca am luat unul de la baza, intreaga constriuctie s-ar prabusi. De asemenea, putem adauga cuburi pentru ca turnul nostru sa creasca.

Putem retine o stiva intr-un vector, sau putem  declara un tip. Eu prefer varianta cu vectori. Declararea se face astfel :

int stiva[1000];    /* vectorul nostru stiva se numeste sugestiv stiva */
int varf = 0;   /* variabila varf retine cate elemente avem in stiva si cu ajutorul ei putem accesa elementul din varf */

Operatiile care se pot face asupra unei stive sunt urmatoarele :

Push

push
Insereaza un element in varful stivei. Cand dorim sa efectuam aceasta operatie este necesar sa verificam daca stiva este deja plina. Vom defini o constanta DIM care va reprezenta dimensiunea stivei.

#define DIM 10000
if (varf + 1 > DIM)
        printf ("Stiva este deja plina !");
else
{
       varf ++;
       printf ("Introduceti elementul : ");
       scanf ("%d", &stiva[varf]);
}

Pop

Scoate primul element din stiva. Trebuie de fiecare data se verificam daca stiva este vida sau nu.
pop

if (varf <= 0)
     printf ("Stiva este vida !");
else
    varf --;

Top

Acceseaza primul element din stiva si il retine intr-o variabila.
top

int registru;  /* in variabila registru vom retine elemenul din varf */
registru = stiva[varf];
printf ("Valoarea primului element din stiva este : %d", registru);

Completare – Stack in STL

O alternativa pentru pasionatii de STL este stack. Acest adaptor este o restrictie a Containerul, permitand doar operatia de inserare, stergere si inspectare a elementului de deasupra.

Pentru a intelege mai bine lucrul cu stive scrieti un program care simuleaza o stiva. Utilizati functii pentru fiecare operatie. De asemenea, puteti incerca niste probleme de pe .campion care se rezolva cu stive. O sa revin cu un articol despre cozi, structuri asemanatoare cu stivele. Numai bine ! 🙂

Etichete: .campionC++coziLIFOProbleme algoritmicăprogramarestivestructuri abstracteTehnic

— Albulescu Cosmina a scris 223 articole

Nu există o descriere a autorului.

  • Articolul anterior Parcurgerea in latime – Lee
  • Articolul următor Ning creeaza propria ta retea sociala

2 Comentarii

  1. Patrunjel spune:
    mai 29, 2010 la 12:03 pm

    Salut,frumos articolul, insa era mai bine daca il faceai in asa fel incat sa se si aprofundeze umpic notiunea de stiva.Totodata, era frumos daca puneai niste probleme, in ordinea dificultatii.Oricum,e bun articolul,adica mie,cel putin, mi s-a parut bun.

  2. Creeps spune:
    august 3, 2010 la 3:49 pm

    E OK articolul, se puteau, insa, introduce si functii pentru a verifica daca stiva este goala sau plina, si o functie pentru a goli stiva (varf = 0). Asta ar fi ajutat mai departe, in „real world” o stiva goala sau plina din/in care vrei sa scoti/adaugi elemente genereaza „stack underflow”, repsectiv „stack overflow”.


  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    [wp_rss_retriever url="https://rohacked.bit-sentinel.com/feed/" excerpt="none" items="5" read_more="false" new_window="true" thumbnail="false" cache="0"] RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • martie 2023
    L Ma Mi J V S D
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Tehnic
  • C/C++
  • Stive [C]
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons