پشته (پیاده سازی لیست پیوندی)، کد ↔ زبان

Summarize this content to 400 words in Persian Lang
ایجاد پشته (پیاده سازی لیست پیوندی)
class Stack {
private:
struct Node {
int data;
Node* next;
Node(int val) {
data = val;
next = nullptr;
}
};
Node* top;
public:
// Constructor to initialize stack
Stack() {
top = nullptr;
}
};
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ابتدا یک کلاس با نام ایجاد می کنیم Stack.
حاوی الف خواهد بود struct Node با خواص زیر:
int data: مقدار گره را ذخیره می کند.
Node* next: به گره بعدی در پشته اشاره می کند.
Node(int val): سازنده برای مقداردهی اولیه data با val و next با nullptr.
دارای یک خاصیت خواهد بود top:
Node* top: به گره بالای پشته اشاره می کند.
یک سازنده اعلام خواهیم کرد Stack():
آن را مقداردهی اولیه می کند top اشاره گر به nullptr، که یک پشته خالی را نشان می دهد.
عملیات فشار
void push(int item) {
Node* newNode = new Node(item);
newNode->next = top;
top = newNode;
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ما یک روش تعریف می کنیم push(int item):
یک عدد صحیح می گیرد item به عنوان ورودی، که مقداری است که باید روی پشته فشار داده شود.
جدید ایجاد خواهیم کرد Node با item به عنوان ارزش آن
را تنظیم خواهیم کرد next اشاره گر گره جدید به جریان top گره
به روز خواهیم کرد top برای اشاره به گره جدید.
عملیات پاپ
int pop() {
if (isEmpty()) {
cout “Underflow: Stack is empty.\n”;
return -1;
}
Node* temp = top;
int poppedValue = temp->data;
top = top->next;
delete temp;
return poppedValue;
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ما یک روش تعریف می کنیم pop():
یک عدد صحیح برمیگرداند که مقداری است که از بالای پشته حذف شده است.
ما بررسی می کنیم که آیا پشته خالی است (با استفاده از isEmpty()) اگر چنین است، “Underflow: Stack is خالی” را چاپ می کند. و برگشت -1.
در غیر این صورت انجام خواهیم داد:
ذخیره کنید top گره در یک اشاره گر موقت temp.
مقدار را از temp و آن را در آن ذخیره کنید poppedValue.
به روز رسانی top برای اشاره به گره بعدی در پشته.
را حذف کنید temp گره برای آزاد کردن حافظه
برگشتن poppedValue.
عملیات زیرچشمی
int peek() {
if (isEmpty()) {
cout “Stack is empty.\n”;
return -1;
}
return top->data;
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ما یک روش تعریف می کنیم peek():
یک عدد صحیح را برمی گرداند که مقدار بالای پشته است.
ما بررسی می کنیم که آیا پشته خالی است (با استفاده از isEmpty()) اگر چنین است، “پشته خالی است” را چاپ می کند. و برگشت -1.
در غیر این صورت، مقدار the را برمی گرداند top گره
عملیات خالی است
bool isEmpty() {
return top == nullptr;
}
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ما یک روش تعریف می کنیم isEmpty():
یک مقدار بولی برمیگرداند که نشان میدهد آیا پشته خالی است یا خیر.
باز می گردد true اگر top است nullptr، نشان می دهد که پشته خالی است.
در غیر این صورت باز خواهد گشت false.
پیاده سازی کامل کد
#include
using namespace std;
class Stack {
private:
struct Node {
int data;
Node* next;
Node(int val) {
data = val;
next = nullptr;
}
};
Node* top;
public:
// Constructor to initialize stack
Stack() {
top = nullptr;
}
// Destructor to free allocated memory
~Stack() {
while (!isEmpty()) {
pop();
}
}
// Push operation
void push(int item) {
Node* newNode = new Node(item);
newNode->next = top;
top = newNode;
}
// Pop operation
int pop() {
if (isEmpty()) {
cout “Underflow: Stack is empty.\n”;
return -1;
}
Node* temp = top;
int poppedValue = temp->data;
top = top->next;
delete temp;
return poppedValue;
}
// Peek operation
int peek() {
if (isEmpty()) {
cout “Stack is empty.\n”;
return -1;
}
return top->data;
}
// Check if stack is empty
bool isEmpty() {
return top == nullptr;
}
};
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
ایجاد پشته (پیاده سازی لیست پیوندی)
class Stack {
private:
struct Node {
int data;
Node* next;
Node(int val) {
data = val;
next = nullptr;
}
};
Node* top;
public:
// Constructor to initialize stack
Stack() {
top = nullptr;
}
};
-
ابتدا یک کلاس با نام ایجاد می کنیم
Stack. -
حاوی الف خواهد بود
struct Nodeبا خواص زیر:-
int data: مقدار گره را ذخیره می کند. -
Node* next: به گره بعدی در پشته اشاره می کند. -
Node(int val): سازنده برای مقداردهی اولیهdataباvalوnextباnullptr.
-
-
دارای یک خاصیت خواهد بود
top:-
Node* top: به گره بالای پشته اشاره می کند.
-
-
یک سازنده اعلام خواهیم کرد
Stack():- آن را مقداردهی اولیه می کند
topاشاره گر بهnullptr، که یک پشته خالی را نشان می دهد.
- آن را مقداردهی اولیه می کند
عملیات فشار
void push(int item) {
Node* newNode = new Node(item);
newNode->next = top;
top = newNode;
}
ما یک روش تعریف می کنیم push(int item):
- یک عدد صحیح می گیرد
itemبه عنوان ورودی، که مقداری است که باید روی پشته فشار داده شود. - جدید ایجاد خواهیم کرد
Nodeباitemبه عنوان ارزش آن - را تنظیم خواهیم کرد
nextاشاره گر گره جدید به جریانtopگره - به روز خواهیم کرد
topبرای اشاره به گره جدید.
عملیات پاپ
int pop() {
if (isEmpty()) {
cout "Underflow: Stack is empty.\n";
return -1;
}
Node* temp = top;
int poppedValue = temp->data;
top = top->next;
delete temp;
return poppedValue;
}
ما یک روش تعریف می کنیم pop():
- یک عدد صحیح برمیگرداند که مقداری است که از بالای پشته حذف شده است.
- ما بررسی می کنیم که آیا پشته خالی است (با استفاده از
isEmpty()) اگر چنین است، “Underflow: Stack is خالی” را چاپ می کند. و برگشت-1. - در غیر این صورت انجام خواهیم داد:
- ذخیره کنید
topگره در یک اشاره گر موقتtemp. - مقدار را از
tempو آن را در آن ذخیره کنیدpoppedValue. - به روز رسانی
topبرای اشاره به گره بعدی در پشته. - را حذف کنید
tempگره برای آزاد کردن حافظه - برگشتن
poppedValue.
- ذخیره کنید
عملیات زیرچشمی
int peek() {
if (isEmpty()) {
cout "Stack is empty.\n";
return -1;
}
return top->data;
}
ما یک روش تعریف می کنیم peek():
- یک عدد صحیح را برمی گرداند که مقدار بالای پشته است.
- ما بررسی می کنیم که آیا پشته خالی است (با استفاده از
isEmpty()) اگر چنین است، “پشته خالی است” را چاپ می کند. و برگشت-1. - در غیر این صورت، مقدار the را برمی گرداند
topگره
عملیات خالی است
bool isEmpty() {
return top == nullptr;
}
ما یک روش تعریف می کنیم isEmpty():
- یک مقدار بولی برمیگرداند که نشان میدهد آیا پشته خالی است یا خیر.
- باز می گردد
trueاگرtopاستnullptr، نشان می دهد که پشته خالی است. - در غیر این صورت باز خواهد گشت
false.
پیاده سازی کامل کد
#include
using namespace std;
class Stack {
private:
struct Node {
int data;
Node* next;
Node(int val) {
data = val;
next = nullptr;
}
};
Node* top;
public:
// Constructor to initialize stack
Stack() {
top = nullptr;
}
// Destructor to free allocated memory
~Stack() {
while (!isEmpty()) {
pop();
}
}
// Push operation
void push(int item) {
Node* newNode = new Node(item);
newNode->next = top;
top = newNode;
}
// Pop operation
int pop() {
if (isEmpty()) {
cout "Underflow: Stack is empty.\n";
return -1;
}
Node* temp = top;
int poppedValue = temp->data;
top = top->next;
delete temp;
return poppedValue;
}
// Peek operation
int peek() {
if (isEmpty()) {
cout "Stack is empty.\n";
return -1;
}
return top->data;
}
// Check if stack is empty
bool isEmpty() {
return top == nullptr;
}
};



