Stack ir lineāra datu struktūra, kas seko LIFO (pēdējais-pirmais-out) principu. Stackam ir viens gals, savukārt rindai ir divi gali ( priekšā un aizmugurē ). Tajā ir tikai viens rādītājs augšējais rādītājs norādot uz kaudzes augšējo elementu. Ikreiz, kad kaudzītei tiek pievienots elements, tas tiek pievienots steka augšpusē, un elementu var dzēst tikai no steka. Citiem vārdiem sakot, a steku var definēt kā konteineru, kurā ievietošanu un dzēšanu var veikt no viena gala, kas pazīstams kā kaudzes augšdaļa.
Daži galvenie punkti, kas saistīti ar kaudzi
- To sauc par kaudzi, jo tā darbojas kā reāla kaudze, grāmatu kaudzes utt.
- Stack ir abstrakts datu tips ar iepriekš noteiktu ietilpību, kas nozīmē, ka tajā var saglabāt ierobežota izmēra elementus.
- Tā ir datu struktūra, kas seko noteiktai elementu ievietošanas un dzēšanas secībai, un šī secība var būt LIFO vai FILO.
Staka darbība
Stack darbi pēc LIFO modeļa. Kā redzams zemāk esošajā attēlā, kaukā ir pieci atmiņas bloki; tāpēc kaudzes izmērs ir 5.
aws sarkanā nobīde
Pieņemsim, ka mēs vēlamies saglabāt elementus kaudzē un pieņemsim, ka kaudze ir tukša. Mēs esam paņēmuši 5. izmēra kaudzi, kā parādīts zemāk, kurā mēs stumjam elementus pa vienam, līdz kaudze ir pilna.
Tā kā mūsu kaudze ir pilna, jo tās izmērs ir 5. Iepriekš minētajos gadījumos mēs varam novērot, ka tas iet no augšas uz leju, kad mēs ievadījām jauno elementu kaudzē. Kaudze tiek piepildīta no apakšas uz augšu.
Veicot dzēšanas darbību stekā, ir tikai viens ieejas un izejas veids, jo otrs gals ir aizvērts. Tas seko LIFO modelim, kas nozīmē, ka vispirms ievadītā vērtība tiks noņemta pēdējā. Iepriekš minētajā gadījumā vispirms tiek ievadīta vērtība 5, tāpēc tā tiks noņemta tikai pēc visu pārējo elementu dzēšanas.
ekta kapoor aktieris
Standarta kaudzes operācijas
Tālāk ir norādītas dažas bieži sastopamas operācijas, kas tiek ieviestas kaudzē:
PUSH darbība
Tālāk ir norādītas darbības, kas saistītas ar PUSH darbību:
- Pirms elementa ievietošanas kaudzē mēs pārbaudām, vai kaudze ir pilna.
- Ja mēs mēģinām ievietot elementu kaudzē un kaudze ir pilna, tad pārplūde iestājas stāvoklis.
- Inicializējot kaudzīti, mēs iestatām top vērtību kā -1, lai pārbaudītu, vai kaudze ir tukša.
- Kad jaunais elements tiek ievietots kaudzē, vispirms tiek palielināta augšdaļas vērtība, t.i., top=top+1, un elements tiks novietots jaunajā pozīcijā tops .
- Elementi tiks ievietoti, līdz mēs sasniegsim maks kaudzes lielums.
POP darbība
Tālāk ir norādītas POP darbības darbības.
- Pirms elementa dzēšanas no steka pārbaudām, vai steka nav tukša.
- Ja mēs mēģinām izdzēst elementu no tukšās kaudzes, tad zemplūsma iestājas stāvoklis.
- Ja kaudze nav tukša, mēs vispirms piekļūstam elementam, uz kuru norāda tops
- Kad ir veikta uznirstošā darbība, augšdaļa tiek samazināta par 1, t.i., top=top-1 .
Stack lietojumprogrammas
Šīs ir steka lietojumprogrammas:
int main() { cout<<'hello'; cout<<'javatpoint'; } < pre> <p>As we know, each program has <em>an opening</em> and <em>closing</em> braces; when the opening braces come, we push the braces in a stack, and when the closing braces appear, we pop the opening braces from the stack. Therefore, the net value comes out to be zero. If any symbol is left in the stack, it means that some syntax occurs in a program.</p> <ul> <tr><td>String reversal:</td> Stack is also used for reversing a string. For example, we want to reverse a ' <strong>javaTpoint</strong> ' string, so we can achieve this with the help of a stack. <br> First, we push all the characters of the string in a stack until we reach the null character. <br> After pushing all the characters, we start taking out the character one by one until we reach the bottom of the stack. </tr><tr><td>UNDO/REDO:</td> It can also be used for performing UNDO/REDO operations. For example, we have an editor in which we write 'a', then 'b', and then 'c'; therefore, the text written in an editor is abc. So, there are three states, a, ab, and abc, which are stored in a stack. There would be two stacks in which one stack shows UNDO state, and the other shows REDO state. <br> If we want to perform UNDO operation, and want to achieve 'ab' state, then we implement pop operation. </tr><tr><td>Recursion:</td> The recursion means that the function is calling itself again. To maintain the previous states, the compiler creates a system stack in which all the previous records of the function are maintained. </tr><tr><td>DFS(Depth First Search):</td> This search is implemented on a Graph, and Graph uses the stack data structure. </tr><tr><td>Backtracking:</td> Suppose we have to create a path to solve a maze problem. If we are moving in a particular path, and we realize that we come on the wrong way. In order to come at the beginning of the path to create a new path, we have to use the stack data structure. </tr><tr><td>Expression conversion:</td> Stack can also be used for expression conversion. This is one of the most important applications of stack. The list of the expression conversion is given below: <pre>Infix to prefix Infix to postfix Prefix to infix Prefix to postfix Postfix to infix</pre> </tr><tr><td>Memory management:</td> The stack manages the memory. The memory is assigned in the contiguous memory blocks. The memory is known as stack memory as all the variables are assigned in a function call stack memory. The memory size assigned to the program is known to the compiler. When the function is created, all its variables are assigned in the stack memory. When the function completed its execution, all the variables assigned in the stack are released. </tr></ul> <hr></'hello';>
'hello';>