C # -da Stack nima?



Download 27,94 Kb.
bet2/2
Sana09.07.2021
Hajmi27,94 Kb.
#113756
1   2
Bog'liq
Док1


Shuning uchun C # da stek ham xuddi shu tarzda ishlaydi. Elementlar stakka bir-birining ustiga joylashtiriladi. Stekka element qo'shish jarayoni surish operatsiyasi deyiladi. Elementni stakadan olib tashlash uchun stackning eng yuqori qismini ham olib tashlashingiz mumkin. Ushbu operatsiya pop deb nomlanadi.


Keling, Stack to'plami uchun mavjud bo'lgan operatsiyalarni batafsil ko'rib chiqamiz.


Stek deklaratsiyasi

Stack Stack Data turi yordamida yaratiladi. "Yangi" kalit so'zi Stack ob'ektini yaratish uchun ishlatiladi. Keyin ob'ekt st o'zgaruvchisiga beriladi.


Stack st = new Stack()

Stekka elementlarni qo'shish

Bosish usuli elementni stakka qo'shish uchun ishlatiladi. Bayonotning umumiy sintaksisi quyida keltirilgan.

Stack.push(element)

Stekdan elementlarni olib tashlash

Elementni stakka olib tashlash uchun pop usuli qo'llaniladi. Pop operatsiyasi to'plamning eng yuqori elementini qaytaradi. Bayonotning umumiy sintaksisi quyida keltirilgan

Stack.pop()

Graf


Ushbu xususiyat Stekdagi narsalar sonini olish uchun ishlatiladi. Quyida ushbu bayonotning umumiy sintaksisini keltiramiz.

Stack.Count

O'z ichiga oladi

Ushbu usul Stack-da element mavjudligini ko'rish uchun ishlatiladi. Quyida ushbu bayonotning umumiy sintaksisini keltiramiz. Agar element mavjud bo'lsa, bayonot to'g'ri keladi, aks holda u false qiymatini qaytaradi.

Stack.Contains(element)

Keling, buni kod darajasida ishlashini ko'rib chiqaylik. Quyida keltirilgan barcha kodlar bizning Konsol dasturiga yoziladi. Kod Program.cs faylimizga yoziladi.

Quyidagi dasturda biz yuqorida aytib o'tilgan usullardan qanday foydalanishimiz mumkinligini ko'rish uchun kod yozamiz.

1-misol


Ushbu misolda biz ko'rib chiqamiz

Stek qanday yaratiladi.

Stek elementlarini qanday ko'rsatish va Count va Contain usullaridan foydalanish.

using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;
namespace DemoApplication

{

class Program



{

static void Main(string[] args)

{

Stack st = new Stack();



st.Push(1);

st.Push(2);

st.Push(3);
foreach (Object obj in st)

{

Console.WriteLine(obj);



}

Console.WriteLine(); Console.WriteLine();

Console.WriteLine("The number of elements in the stack " +st.Count);

Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3));

Console.ReadKey();

}

}



}

Kodni tushuntirish: -

Birinchi qadam Stackni e'lon qilish uchun ishlatiladi. Bu erda biz "st" ni bizning stek elementlarini ushlab turish uchun o'zgaruvchi sifatida e'lon qilamiz.

Keyinchalik, biz stackga 3 ta element qo'shamiz. Har bir element Push usuli yordamida qo'shiladi.

Endi ketma-ketlik elementlariga massivlar ro'yxati kabi indeks holati orqali kirish imkoni bo'lmagani uchun, biz stek elementlarini ko'rsatish uchun boshqa yondashuvdan foydalanishimiz kerak. Object (obj) - bu vaqtincha o'zgaruvchidir, u stekning har bir elementini ushlab turish uchun e'lon qilinadi. Keyin biz har bir elementni ko'rib chiqish uchun foreach iborasidan foydalanamiz. Har bir stek elementi uchun obj o'zgaruvchiga qiymat beriladi. Keyin konsolga qiymatni ko'rsatish uchun Console.Writeline buyrug'idan foydalanamiz.

Stekdagi narsalar sonini olish uchun Count xususiyatidan (st.count) foydalanmoqdamiz. Ushbu xususiyat raqamni qaytaradi. Keyin biz ushbu qiymatni konsolga ko'rsatamiz.

Keyin biz o'z ichiga olgan usulni ishlatib, 3 qiymati bizning to'plamimizda mavjudligini tekshiramiz. Bu haqiqiy yoki noto'g'ri qiymatni qaytaradi. Keyin biz ushbu qaytish qiymatini konsolga namoyish qilamiz.

Chiqadi:


Chiqishdan biz stek elementlari namoyish etilishini ko'rishimiz mumkin. Bundan tashqari, True qiymati stackda 3 qiymati aniqlanganligini ko'rsatish uchun ko'rsatiladi.

Izoh: Siz avval stekka surilgan oxirgi element ko'rsatilishini sezdingiz. Bu to'plamning eng yuqori elementi. Stek elementlari soni ham chiqishda ko'rsatilgan.

2-misol

Endi "olib tashlash" funksiyasini ko'rib chiqamiz. Biz stakdan eng yuqori elementni olib tashlash uchun zarur bo'lgan kodni ko'rib chiqamiz.

using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace DemoApplication

{

class Program



{

static void Main(string[] args)

{

Stack st = new Stack();



st.Push(1);

st.Push(2);

st.Push(3);

st.Pop();


foreach (Object obj in st)

{

Console.WriteLine(obj);



}

Console.ReadKey();

}

}

}



Kodni tushuntirish: -

Bu erda biz elementni stakdan olib tashlash uchun ishlatiladigan pop usulini chiqaramiz.

Agar yuqoridagi kod to'g'ri kiritilsa va dastur ishga tushirilsa, quyidagi chiqish ko'rsatiladi.

Chiqadi:


3-element stekdan olib tashlanganligini ko'rishimiz mumkin.

Xulosa


Stek birinchi chiqarilgan birinchi kontseptsiyaga asoslanadi. Elementni stekka qo'shish jarayoni surish operatsiyasi deb ataladi. Stekka elementni olib tashlash operatsiyasi pop operatsiyasi deb ataladi.

Kirish


Stek - bu LIFO (birinchi bo'lib oxirgi) ma'lumotlar tuzilishi. Stek - bu narsalar to'plami, deb o'ylang, u erda siz stekka qo'shgan har qanday narsa yuqori qismga joylashtiriladi va agar siz biror narsani olib tashlashingiz kerak bo'lsa, u yuqoridan olib tashlanadi. Plitalar to'plami yoki kitoblar to'plami - bu suyakka oid ikkita keng tarqalgan misol.

Ushbu qo'llanmada biz C # da Stack <> sinfidan qanday foydalanishni bilib olamiz. Biz qanday qilib Stack yaratish va uning Push, Pop va boshqa usullaridan qanday foydalanishni ko'rib chiqamiz.

Stack bu System.Collection.Generic nomlar maydonida aniqlangan to'plam, bu erda T stekdagi elementlarning turini ko'rsatgan.

Stek yarating

Stack <> sinf konstruktorlari quyidagicha ko'rinadi:

Yig'indagi narsalarni hisoblash

Stack sinfining Count xususiyati stekdagi elementlar sonini qaytaradi. Quyidagi kod misoli turli xil usullardan foydalangan holda uchta to'plamni hosil qiladi va Count xususiyatidan foydalanib, bu to'plamlardagi narsalar sonini qaytaradi.


  1. namespace Stack {  

  2.     classProgram {  

  3.         staticvoid Main(string[] args) {  

  4.             Stack < string > stack1 = newStack < string > ();  

  5.             string[] str = {  

  6.                 "MCA",  

  7.                 "BCA",  

  8.                 "BBA",  

  9.                 "MBA",  

  10.                 "MTech"  

  11.             };  

  12.             Stack < string > stack2 = newStack < string > (str);  

  13.             Stack < string > stack3 = newStack < string > (10);  

  14.             Console.WriteLine("The elements in the stack1 are:" + stack1.Count());  

  15.             Console.WriteLine("The elements in the stack2 are:" + stack2.Count());  

  16.             Console.WriteLine("The elements in the stack3 are:" + stack3.Count());  

  17.         }  

  18.     }  

  19. }  

Chiqish quyidagicha ko'rinadi:

C # -dagi stekka narsalarni qo'shish

Push () usuli stakka (surish) elementini qo'shish uchun ishlatiladi. Element stackning yuqori qismiga qo'shiladi.

Quyidagi kod misolida narsalarni stekka qo'shish uchun Push usulini qanday ishlatish kerakligi ko'rsatilgan.



  1. namespace Stack {  

  2.     classProgram {  

  3.         staticvoid Main(string[] args) {  

  4.             Stack < string > stack1 = newStack < string > ();  

  5.             string[] str = {  

  6.                 "MCA",  

  7.                 "BCA",  

  8.                 "BBA",  

  9.                 "MBA",  

  10.                 "MTech"  

  11.             };  

  12.             Stack < string > stack2 = newStack < string > (str);  

  13.             Stack < string > stack3 = newStack < string > (10);  

  14.             stack1.Push("************");  

  15.             stack1.Push("MCA");  

  16.             stack1.Push("MBA");  

  17.             stack1.Push("BCA");  

  18.             stack1.Push("BBA");  

  19.             stack1.Push("***********");  

  20.             stack1.Push("**Courses**");  

  21.             stack1.Push("***********");  

  22.             Console.WriteLine("The elements in the stack1 are as:");  

  23.             foreach(string s in stack1) {  

  24.                 Console.WriteLine(s);  

  25.             }  

  26.             Console.WriteLine("The elements in the stack2 are as:");  

  27.             foreach(string s in stack2) {  

  28.                 Console.WriteLine(s);  

  29.             }  

  30.             stack3.Push("one");  

  31.             stack3.Push("Two");  

  32.             Console.WriteLine("The elements in the stack3 are as:");  

  33.             foreach(string s in stack3) {  

  34.                 Console.WriteLine(s);  

  35.             }  

  36.         }  

  37.     }  

  38. }  

Chiqish quyidagicha ko'rinadi:

C # -dagi stekdan narsalarni olib tashlash

Pop () usuli elementlarni stekdan olib tashlash uchun ishlatiladi. Pop () usuli eng yuqori elementni stekdan olib tashlaydi.

Quyidagi kod misolida 3 ta elementni olib tashlash uchun uch marta Pop () usuli qo'llaniladi.



  1. namespace Stack {  

  2.     classProgram {  

  3.         staticvoid Main(string[] args) {  

  4.             Stack < string > stack1 = newStack < string > ();  

  5.             stack1.Push("************");  

  6.             stack1.Push("MCA");  

  7.             stack1.Push("MBA");  

  8.             stack1.Push("BCA");  

  9.             stack1.Push("BBA");  

  10.             stack1.Push("***********");  

  11.             stack1.Push("**Courses**");  

  12.             stack1.Push("***********");  

  13.             Console.WriteLine("The elements in the stack1 are as:");  

  14.             foreach(string s in stack1) {  

  15.                 Console.WriteLine(s);  

  16.             }  

  17.             //For remove/or pop the element pop() method is used  

  18.             stack1.Pop();  

  19.             stack1.Pop();  

  20.             stack1.Pop();  

  21.             Console.WriteLine("After removal/or pop the element the stack is as:");  

  22.             //the element that inserted in last is remove firstly.  

  23.             foreach(string s in stack1) {  

  24.                 Console.WriteLine(s);  

  25.             }  

  26.         }  

  27.     }  

  28. }  

Chiqish quyidagicha ko'rinadi:

C # -dagi stekdan narsalarni oling

Peek () usuli Stack ning eng yuqori elementini olib tashlamasdan qaytaradi. Quyidagi kod parchasi stack elementlarini o'qiydi va tarkibni aks ettiradi.


  1. namespace Stack {  

  2.     classProgram {  

  3.         staticvoid Main(string[] args) {  

  4.             Stack < string > stack1 = newStack < string > ();  

  5.             stack1.Push("************");  

  6.             stack1.Push("MCA");  

  7.             stack1.Push("MBA");  

  8.             stack1.Push("BCA");  

  9.             stack1.Push("BBA");  

  10.             stack1.Push("***********");  

  11.             stack1.Push("**Courses**");  

  12.             stack1.Push("***********");  

  13.             Console.WriteLine("The elements in the stack1 are as:");  

  14.             foreach(string s in stack1) {  

  15.                 Console.WriteLine(s);  

  16.             }  

  17.             //The first peek element is find by peek() method  

  18.             //peek method gives the element that located at the top of the stack  

  19.             Console.WriteLine("The peek element is:" + stack1.Peek());  

  20.             stack1.Pop();  

  21.             Console.WriteLine("The nest peek element is:" + stack1.Peek());  

  22.         }  

  23.     }  

  24. }  

Chiqish quyidagicha ko'rinadi

C # Stack kodining misoli

Bu erda Stack sinfidan va uning C # usullaridan foydalanishning ba'zi kodlari keltirilgan. Contain () usuli elementni stek ichida topsa, uni aniqlaydi va qaytaradi. Quyidagi misol Contain usulidan foydalanadi.


  1. namespace Stack {  

  2.     classProgram {  

  3.         staticvoid Main(string[] args) {  

  4.             Stack < string > stack1 = newStack < string > ();  

  5.             stack1.Push("************");  

  6.             stack1.Push("MCA");  

  7.             stack1.Push("MBA");  

  8.             stack1.Push("BCA");  

  9.             stack1.Push("BBA");  

  10.             stack1.Push("***********");  

  11.             stack1.Push("**Courses**");  

  12.             stack1.Push("***********");  

  13.             Console.WriteLine("The elements in the stack1 are as:");  

  14.             foreach(string s in stack1) {  

  15.                 Console.WriteLine(s);  

  16.             }  

  17.             Console.WriteLine("The element MCA contain in the stack " + stack1.Contains("MCA"));  

  18.             Console.WriteLine("The element BCA contain in the stack " + stack1.Contains("BCA"));  

  19.             Console.WriteLine("The element MTech contain in the stack " + stack1.Contains("MTech"));  

  20.         }  

  21.     }  

  22. }  

Chiqish quyidagicha ko'rinadi:

St # ustida ishlash C #

Stack ning Clear () usuli barcha elementlarni to'plamdan olib tashlaydi. Quyidagi kod parchasi Clear () usulidan foydalanadi va stekdagi barcha elementlarni olib tashlaydi.


  1. namespace Stack {  

  2.     classProgram {  

  3.         staticvoid Main(string[] args) {  

  4.             Stack < string > stack1 = newStack < string > ();  

  5.             stack1.Push("************");  

  6.             stack1.Push("MCA");  

  7.             stack1.Push("MBA");  

  8.             stack1.Push("BCA");  

  9.             stack1.Push("BBA");  

  10.             stack1.Push("***********");  

  11.             stack1.Push("**Courses**");  

  12.             stack1.Push("***********");  

  13.             Console.WriteLine("The element in the stack are:" + stack1.Count());  

  14.             Console.WriteLine("The elements in the stack1 are as:");  

  15.             foreach(string s in stack1) {  

  16.                 Console.WriteLine(s);  

  17.             }  

  18.             //clear() method remove/or clear all the elements from the stack  

  19.             stack1.Clear();  

  20.             Console.WriteLine("After apply the clear method the elements in the stack are:" + stack1.Count());  

  21.         }  

  22.     }  

  23. }

Chiqish quyidagicha ko'rinadi:

C # - to'plami

Stack - bu elementlarni LIFO uslubida saqlaydigan maxsus kollektsiya turi (Last In First Out). C # umumiy Stack va umumiy bo'lmagan Stack to'plam sinflarini o'z ichiga oladi. Umumiy Stack to'plamidan foydalanish tavsiya etiladi.

Stack vaqtinchalik ma'lumotlarni LIFO uslubida saqlash uchun foydalidir va siz uning qiymatini olgandan keyin elementni o'chirishingiz mumkin.

Stek xususiyatlari

Stack - bu birinchi bo'lib chiqarilganlar to'plami.

U System.Collection.Generic nom maydoniga kiradi.

Stek belgilangan tipdagi elementlarni o'z ichiga olishi mumkin. U kompilyatsiya vaqtini tekshirishni ta'minlaydi va boks qutisidan chiqarib bo'lmaydi, chunki u umumiydir.

Elementlarni Push () usuli yordamida qo'shish mumkin. To'plam-initsializator sintaksisidan foydalanib bo'lmaydi.

Pop () va Peek () usullari yordamida elementlarni olish mumkin. Bu indeksatorni qo'llab-quvvatlamaydi.

Yig'ma yaratish

Saqlashi mumkin bo'lgan elementlar turi uchun parametr parametrini ko'rsatish orqali Stack ob'ektini yaratishingiz mumkin. Quyidagi misol Push () usuli yordamida Stack da elementlarni yaratadi va qo'shadi. Stack null (mos yozuvlar turlari uchun) va takrorlanadigan qiymatlarga ruxsat beradi.

Stack myStack = new Stack();

myStack.Push(1);

myStack.Push(2);

myStack.Push(3);

myStack.Push(4);
foreach (var item in myStack)

Console.Write(item + ","); //prints 4,3,2,1,

Quyida ko'rsatilgandek qatordan Stack yaratishingiz mumkin.

int[] arr = new int[]{ 1, 2, 3, 4};

Stack myStack = new Stack(arr);
foreach (var item in myStack)

Console.Write(item + ","); //prints 4,3,2,1,

Stack Xususiyatlari va usullari:

Property

Usage

Count

Returns the total count of elements in the Stack.




Method

Usage

Push(T)

Inserts an item at the top of the stack.

Peek()

Returns the top item from the stack.

Pop()

Removes and returns items from the top of the stack.

Contains(T)

Checks whether an item exists in the stack or not.

Clear()

Removes all items from the stack.

Count Stack-dagi elementlarning umumiy sonini qaytaradi.

Usuldan foydalanish

Push (T) to'plamni yuqori qismiga qo'shib qo'yadi.

Peek () stekdan yuqori elementni qaytaradi.

Pop () Stekning yuqori qismidagi narsalarni olib tashlaydi va qaytaradi.

Tarkibida (T) elementning stakda mavjudligini yoki yo'qligini tekshiradi.

Clear () barcha elementlarni to'plamdan olib tashlaydi.

Pop ()


Pop () usuli oxirgi elementni qaytaradi va uni stekdan olib tashlaydi. Agar stek bo'sh bo'lsa, u holda InvalidOperationException -ni tashlaydi. Shunday qilib, har doim Pop () usulini chaqirishdan oldin stekdagi elementlar sonini tekshiring.

Stack myStack = new Stack();

myStack.Push(1);

myStack.Push(2);

myStack.Push(3);

myStack.Push(4);


Console.Write("Number of elements in Stack: {0}", myStack.Count);
while (myStack.Count > 0)

Console.Write(myStack.Pop() + ",");


Console.Write("Number of elements in Stack: {0}", myStack.Count);

Try it

Output:


Number of elements in Stack: 4
4,3,2,1,
Number of elements in Stack: 0

Download 27,94 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish