Using namespace std; class



Download 28,5 Kb.
Sana29.11.2022
Hajmi28,5 Kb.
#875153
Bog'liq
mavlonbek isroilov malumotlar bazasi(1)



14.N o’lchamli sonli qiymatdagi to’plam berilgan. Dinamik massiv ko’rinishida stek yaratilsin va to’plam elementlari stekga qo’shilsin. Stek cho’qqisidan ketma-ket 2 ta element olinsin. Stek barcha elementlari ekranga chiqarilsin?


#include


using namespace std;
class twoStacks {
int* arr;
int size;
int top1, top2;
public:
// Constructor
twoStacks(int n)
{
size = n;
arr = new int[n];
top1 = n / 2 + 1;
top2 = n / 2;
}
void push1(int x)
{
// Kamida bitta bo'sh
// yangi element uchun bo'sh joy


if (top1 > 0) {
top1--;
arr[top1] = x;
}
else {
cout << "Stack Overflow"
<< " By element : " << x << endl;
return;
}
}
// Elementni surish usuli
// x dan stek2ga
void push2(int x)
{
// Kamida bitta bo'sh
// yangi element uchun bo'sh joy
if (top2 < size - 1) {
top2++;
arr[top2] = x;
}
else {
cout << "Stack Overflow"
<< " By element : " << x << endl;
return;
}
}
// Birinchi stekdan elementni chiqarish usuli
int pop1()
{
if (top1 <= size / 2) {
int x = arr[top1];
top1++;
return x;
}
else {
cout << "Stack UnderFlow";
exit(1);
}
}
// Elementni ochish usuli
// ikkinchi stekdan


int pop2()
{
if (top2 >= size / 2 + 1) {
int x = arr[top2];
top2--;
return x;
}
else {
cout << "Stack UnderFlow" << endl;
exit(1);
}
}
};
/* PROGRAMMADA 2TA STEK ELEMENTLARI ISHLATILADI*/
int main()
{
twoStacks ts(5);
ts.push1(5);
ts.push2(10);
ts.push2(15);
ts.push1(11);
ts.push2(7);
cout << "Popped element from stack1 is "
<< ": " << ts.pop1() << endl;
ts.push2(40);
cout << "Popped element from stack2 is "
<< ": " << ts.pop2() << endl;
return 0;
}
2-vazifa: 14.N o’lchamli sonli qiymatdagi to’plam berilgan. Bir bog’lamli ro’yhat ko’rinishida stek yaratilsin va to’plam elementlari stekga qo’shilsin. Stek cho’qqisidan ketma-ket 2 ta element olinsin. Stek barcha elementlari ekranga chiqarilsin




#include


using namespace std;
// listning ruyxati yaratiladi;
class Node {
public:
int data;
Node* link;
// konstructor
Node(int n)
{
this->data = n;
this->link = NULL;
}
};
class Stack {
Node* top;
public:
Stack() { top = NULL; }
void push(int data)
{
//Yangi tugun tempini yarating va xotirani yig'indiga ajrating
Node* temp = new Node(data);
// Stack (uyma) to'lganligini tekshiring.
// Keyin elementni kiritish kerak
// stekning to'lib ketishiga olib keladi
if (!temp) {
cout << "\nStack Overflow";
exit(1);
}
// vaqtinchalik fayl ishda tushiriladi
temp->data = data;
// Yuqori ko'rsatkich mos yozuvini vaqtinchalik havolaga qo'ying temp->link = top;
// stackning vaqtinchalik temp tayyorlanadi
top = temp;
}
// Yo'qligini tekshirish uchun yordamchi dastur
// stek bo'sh yoki yo'q
bool isEmpty()
{
// Agar top NULL bo'lsa, bu shuni anglatadi
// stekda hech qanday element yo'q
return top == NULL;
}
// stekdagi yuqori elementni qaytarish uchun yordamchi dastur
int peek()
{
// Agar stek bo'sh bo'lmasa, yuqori elementni qaytaring
if (!isEmpty())
return top->data;
else
exit(1);
}
// O'chirish funktsiyasi
// berilgan navbatdagi kalit q
void pop()
{
Node* temp;
// stack sinab kuriladi
if (top == NULL) {
cout << "\nStack Underflow" << endl;
exit(1);
}
else {
// Yuqorini tempga belgilang
temp = top;
//ikkinchi ruyxat belgilanadi
top = top->link;
// Bu avtomatik ravishda yo'q qilinadi
// birinchi tugun va ikkinchi tugun o'rtasidagi bog'lanish
// Yuqori tugun xotirasini bo'shatish
// ya'ni tugunni o'chirish



free(temp);
}
}
// funksiyani barchasini chop etadi
// stekdagi elementlarni
void display()
{
Node* temp;
// Stack to'kilmasligini tekshiring
if (top == NULL) {
cout << "\nStack Underflow";
exit(1);
}
else {
temp = top;
while (temp != NULL) {
//tugundagi malumotlarni chop etish
cout << temp->data;
// Temp havolasini temp qiling
temp = temp->link;
if (temp != NULL)
cout << " -> ";
}
}
}
};
// programma ishlayabdi
int main()
{
// stek yaratilyabdi
Stack s;
// Push the elements of stack
s.push(11);
s.push(22);
s.push(33);
s.push(44);
// Display stack elements
s.display();
// stekdagi elementlarni chop etadi
cout << "\nTop element is " << s.peek() << endl;
// stekdagi elementlarni uchirish
s.pop();
s.pop();
// Stack elementlarini ko'rsatish
s.display();
// stekdaqi qidirilayotgan element topiladi
cout << "\nTop element is " << s.peek() << endl;
return 0;
}
Cod natijasi

Download 28,5 Kb.

Do'stlaringiz bilan baham:




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