Կույտեր Java-ում

ներածություն

Ստեկը ծրագրավորման լեզուներում տվյալների գծային կառուցվածք է: Այս կառուցվածքի գրաֆիկական բացատրությունը կլինի քարտերի փաթեթը, որը կուտակված է մեկը մյուսի վրա: Քարտերը կարելի է անվանել «դասավոր»: Վերջին քարտը միշտ դրված է բուրգի վերևում: Հետևաբար, կույտերը նույնպես հետևում են Last In First Out (LIFO) ալգորիթմի ընդհանուր կոնվենցիային: Այնուամենայնիվ, FIFO (First In First Out) կույտերը նույնպես կարող են իրականացվել: Դա մեծ մասամբ կախված է աշխատանքի պահանջից։

Հիմնական Stack Operations

Կույտերի մասին խոսելիս միշտ իրականացվում են 4 հիմնական գործողություն. Գործողությունները հետևյալն են.

  • Push – Push օպերացիան օգտագործվում է այն ժամանակ, երբ ցանկանում եք տարր ավելացնել փաթեթին: Կախված նրանից, թե ինչպես եք կառուցված կույտը, նոր տարրը կավելացվի դրվածքի առջևում կամ վերջում: Եթե ​​բուրգն արդեն լցված է, կցուցադրվի կույտի արտահոսքի հաղորդագրություն:
  • Pop – Pop ֆունկցիան օգտագործվում է անդամին կույտից հեռացնելու կամ հեռացնելու համար: Pop-ը տրամագծորեն հակառակ է Push-ին, քանի որ այս երկու գործողությունները տեղի են ունենում կույտի հակառակ ծայրերում: Եթե ​​բուրգն արդեն լցված է, կցուցադրվի ներհոսքի հաղորդագրություն:
  • Peek – Այս ֆունկցիան հիմնականում ստուգում է բուրգի ամենաբարձր տարրը: Peek-ը վերադարձնում է բուրգի ամենաբարձր տարրը:
  • isEmpty – Սա վերադարձնում է true, եթե կույտը դատարկ է, և false, եթե փաթեթն ունի առնվազն մեկ անդամ:

Timeամանակի բարդություն

Stack-ը բավականին արդյունավետ տվյալների կառույց է, որտեղ վերը նշված բոլոր տարբեր գործողությունները (push, pop, peek, isEmpty) պահանջում են նույնքան ժամանակ, և բարդությունը կարող է գնահատվել O(1):

Stacks-ի իրականացում

Ստեկը հայեցակարգ է, որը պետք է իրականացվի տվյալների հավաքածուների միջոցով: Ստեկը իրականացնելու երկու եղանակ կա. Դուք կարող եք կամ օգտագործել զանգվածներ կամ կապակցված ցուցակներ: Եթե ​​դուք օգտագործում եք զանգվածներ, տվյալները կմնան հարակից հիշողության վայրում: Կապակցված ցուցակներն ավելի արդյունավետ են հիշողությունը, բայց ավելի հեշտ է աշխատել զանգվածների հետ: Հետևյալ կոդը օգտագործում է զանգվածներ՝ ստեկը իրականացնելու համար:

Կույտ՝ օգտագործելով զանգվածներ JAVA-ում

class Stack { static final int len ​​= 1000; int top; //Ստաք ստեղծելով int arr[] = new int [len]; բուլյան isEmpty () { return (վերեւ < 0); } //Constructor Stack() { top = -1 } boolean push (int a) {if (top >= (len - 1)) { System.out.println («Stack Overflow»); վերադարձ կեղծ; } else { arr[++top] = a; System.out.println (a + «ավելացվել է փաթեթին»); վերադարձնել ճշմարիտ; } } int pop() {if (վերևում < 0) { System.out.println («Stack Underflow»); վերադարձ 0; } else { int a = arr[վերև--]; վերադարձ ա; } } int peek() {if(վերև < 0) { System.out.println(«Stack Underflow»); վերադարձ 0; } else { int p = arr[վերև]; վերադարձ p; } } //Main Class class StackImplement { public static void main (String args []) { Stack s = new Stack (); s.push (78); s.push (34); s.push (56); System.out.println(s.pop() + «հեռացված է փաթեթից»); } }

 

ԹՈՂԱՐԿՈՒՄ

78-ն ավելացվել է բուրգին
34-ն ավելացվել է բուրգին
56-ն ավելացվել է բուրգին
56-ը հանվել է կույտից

 

Կույտ՝ օգտագործելով Կապված ցուցակը JAVA-ում

public class StackAsLinkedList { StackNode արմատ; static class StackNode { int data; StackNode հաջորդը; StackNode(int data) { this.data = data; } } public boolean isEmpty() {if (root == null) { return true; } else return false; } public void push(int data) { StackNode newNode = new StackNode(data); if (root == null) { root = newNode; } else { StackNode temp = root; արմատ = նոր հանգույց; newNode.next = ջերմաստիճան; } System.out.println(տվյալները + « դրված են դրված»); } public int pop() { int popped = Integer.MIN_VALUE; if (root == null) { System.out.println ("Stack is Empty"); } else {popped = root.data; արմատ = արմատ.հաջորդ; } վերադարձը բացված; } public int peek() {if (root == null) { System.out.println("Stack is դատարկ"); վերադարձնել Integer.MIN_VALUE; } else { return root.data; } } //Main Class public static void main(String[] args) { StackAsLinkedList sll = new StackAsLinkedList(); sll.push (100); sll.push (200); sll.push (350); System.out.println(sll.pop() + " popped from stack"); System.out.println("Վերին տարրը " + sll.peek()); } }

ԹՈՂԱՐԿՈՒՄ

100-ը դրված է դրված
200-ը դրված է դրված
350-ը դրված է դրված
350-ը դուրս է եկել կույտից
Վերին տարրը 200 է

հեղինակ


մեկնաբանություններ

Թողնել գրառում

Ձեր էլփոստի հասցեն չի հրապարակվելու. Պահանջվող դաշտերը նշված են աստղանիշով *

Այս կայքը օգտագործում է Akismet- ը սպամի նվազեցման համար: Իմացեք, թե ինչպես է ձեր տվյալները մշակվում.