using namespace std;
class OPND //運算數(shù)
{
public:
int a[100];
int top;
};
class OPTR //運算符
{
public:
char a[100];
int top;
};
void Init_OPND(OPND *s) //初始化運算數(shù)棧
{
s->top = -1;
}
void Init_OPTR(OPTR *s) //初始化運算符棧
{
s->top = -1;
}
void Push_OPND(OPND *s, int x) //push一個運算數(shù)
{
s->top++;
s->a[s->top] = x;
}
void Push_OPTR(OPTR *s, char x) //push一個運算符
{
s->top++;
s->a[s->top] = x;
}
int Pop_OPND(OPND *s) //pop一個運算數(shù)
{
int x;
x = s->a[s->top];
s->top--;
return x;
}
char Pop_OPTR(OPTR *s) //pop一個運算符
{
char x;
x = s->a[s->top];
s->top--;
return x;
}
int GetTop_OPND(OPND *s) //取棧頂運算數(shù)
{
return (s->a[s->top]);
}
char GetTop_OPTR(OPTR *s) //取棧頂運算符
{
return (s->a[s->top]);
}
#include<cstdio>
#include<iostream>
using namespace std;
typedef int T;
typedef struct qnode
{
T data;
struct qnode *next;
}LQNode;
typedef int T;
typedef struct
{
LQNode *front;
LQNode *rear;
}LQueue;
class QLink
{
public:
QLink(LQueue *Q);
~QLink();
void QAppend(LQueue *Q, T x);//把元素插入隊尾
int QDelete(LQueue *Q, T *x);//刪除元素
int QGet(LQueue Q, T *x);//取元素
void QDestroy(LQueue Q);//撤銷動態(tài)申請空間
};
template <class T>
QLink<T>::QLink(LQueue *Q)
{
Q->rear = NULL;
Q->front = NULL;
}
template <class T>
void QLink<T>::QAppend(LQueue *Q, T x)
{
LQNode *p;
p = (LQNode *)malloc(sizeof (LQNode));
p->data = x;
p->next = NULL;
if (Q->rear != NULL)
Q->rear->next = p;
Q->rear = p;
if (Q->front == NULL)
Q->front = p;
}
template <class T>
int QDelete(LQueue *Q, T *x)
{
LQNode *p;
if (Q->front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列"改抡;
return 0;
}
else
{
*x = Q->front->data;
p = Q->front;
Q->front = Q->front->next;
if (Q->front == NULL)
Q->rear = NULL;
free(p);
return 1;
}
}
int QGet(LQueue Q, T *x)
{
if (Q.front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列驾诈!\n";
return 0;
}
else
{
*x = Q.front->data;
return 1;
}
}
void QDestroy(LQueue Q)
{
LQNode *p, *p1;
p = Q.front;
while (p != NULL)
{
p1 = p;
p = p->next;
free(p1);
}
}
#include<cstdio>
#include<iostream>
using namespace std;
typedef int T;
typedef struct qnode
{
T data;
struct qnode *next;
}LQNode;
typedef int T;
typedef struct
{
LQNode *front;
LQNode *rear;
}LQueue;
class QLink
{
public:
QLink(LQueue *Q);
~QLink();
void QAppend(LQueue *Q, T x);//把元素插入隊尾
int QDelete(LQueue *Q, T *x);//刪除元素
int QGet(LQueue Q, T *x);//取元素
void QDestroy(LQueue Q);//撤銷動態(tài)申請空間
};
template <class T>
QLink<T>::QLink(LQueue *Q)
{
Q->rear = NULL;
Q->front = NULL;
}
template <class T>
void QLink<T>::QAppend(LQueue *Q, T x)
{
LQNode *p;
p = (LQNode *)malloc(sizeof (LQNode));
p->data = x;
p->next = NULL;
if (Q->rear != NULL)
Q->rear->next = p;
Q->rear = p;
if (Q->front == NULL)
Q->front = p;
}
template <class T>
int QDelete(LQueue *Q, T *x)
{
LQNode *p;
if (Q->front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列"狠角;
return 0;
}
else
{
*x = Q->front->data;
p = Q->front;
Q->front = Q->front->next;
if (Q->front == NULL)
Q->rear = NULL;
free(p);
return 1;
}
}
int QGet(LQueue Q, T *x)
{
if (Q.front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列讲仰!\n";
return 0;
}
else
{
*x = Q.front->data;
return 1;
}
}
void QDestroy(LQueue Q)
{
LQNode *p, *p1;
p = Q.front;
while (p != NULL)
{
p1 = p;
p = p->next;
free(p1);
}
}
#include<cstdio>
#include<iostream>
using namespace std;
typedef int T;
typedef struct qnode
{
T data;
struct qnode *next;
}LQNode;
typedef int T;
typedef struct
{
LQNode *front;
LQNode *rear;
}LQueue;
class QLink
{
public:
QLink(LQueue *Q);
~QLink();
void QAppend(LQueue *Q, T x);//把元素插入隊尾
int QDelete(LQueue *Q, T *x);//刪除元素
int QGet(LQueue Q, T *x);//取元素
void QDestroy(LQueue Q);//撤銷動態(tài)申請空間
};
template <class T>
QLink<T>::QLink(LQueue *Q)
{
Q->rear = NULL;
Q->front = NULL;
}
template <class T>
void QLink<T>::QAppend(LQueue *Q, T x)
{
LQNode *p;
p = (LQNode *)malloc(sizeof (LQNode));
p->data = x;
p->next = NULL;
if (Q->rear != NULL)
Q->rear->next = p;
Q->rear = p;
if (Q->front == NULL)
Q->front = p;
}
template <class T>
int QDelete(LQueue *Q, T *x)
{
LQNode *p;
if (Q->front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列";
return 0;
}
else
{
*x = Q->front->data;
p = Q->front;
Q->front = Q->front->next;
if (Q->front == NULL)
Q->rear = NULL;
free(p);
return 1;
}
}
int QGet(LQueue Q, T *x)
{
if (Q.front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列言缤!\n";
return 0;
}
else
{
*x = Q.front->data;
return 1;
}
}
void QDestroy(LQueue Q)
{
LQNode *p, *p1;
p = Q.front;
while (p != NULL)
{
p1 = p;
p = p->next;
free(p1);
}
}
vv#include<cstdio>
#include<iostream>
using namespace std;
typedef int T;
typedef struct qnode
{
T data;
struct qnode *next;
}LQNode;
typedef int T;
typedef struct
{
LQNode *front;
LQNode *rear;
}LQueue;
class QLink
{
public:
QLink(LQueue *Q);
~QLink();
void QAppend(LQueue *Q, T x);//把元素插入隊尾
int QDelete(LQueue *Q, T *x);//刪除元素
int QGet(LQueue Q, T *x);//取元素
void QDestroy(LQueue Q);//撤銷動態(tài)申請空間
};
template <class T>
QLink<T>::QLink(LQueue *Q)
{
Q->rear = NULL;
Q->front = NULL;
}
template <class T>
void QLink<T>::QAppend(LQueue *Q, T x)
{
LQNode *p;
p = (LQNode *)malloc(sizeof (LQNode));
p->data = x;
p->next = NULL;
if (Q->rear != NULL)
Q->rear->next = p;
Q->rear = p;
if (Q->front == NULL)
Q->front = p;
}
template <class T>
int QDelete(LQueue *Q, T *x)
{
LQNode *p;
if (Q->front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列"焦匈;
return 0;
}
else
{
*x = Q->front->data;
p = Q->front;
Q->front = Q->front->next;
if (Q->front == NULL)
Q->rear = NULL;
free(p);
return 1;
}
}
int QGet(LQueue Q, T *x)
{
if (Q.front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列德绿!\n";
return 0;
}
else
{
*x = Q.front->data;
return 1;
}
}
void QDestroy(LQueue Q)
{
LQNode *p, *p1;
p = Q.front;
while (p != NULL)
{
p1 = p;
p = p->next;
free(p1);
}
}
v#include<cstdio>
#include<iostream>
using namespace std;
typedef int T;
typedef struct qnode
{
T data;
struct qnode *next;
}LQNode;
typedef int T;
typedef struct
{
LQNode *front;
LQNode *rear;
}LQueue;
class QLink
{
public:
QLink(LQueue *Q);
~QLink();
void QAppend(LQueue *Q, T x);//把元素插入隊尾
int QDelete(LQueue *Q, T *x);//刪除元素
int QGet(LQueue Q, T *x);//取元素
void QDestroy(LQueue Q);//撤銷動態(tài)申請空間
};
template <class T>
QLink<T>::QLink(LQueue *Q)
{
Q->rear = NULL;
Q->front = NULL;
}
template <class T>
void QLink<T>::QAppend(LQueue *Q, T x)
{
LQNode *p;
p = (LQNode *)malloc(sizeof (LQNode));
p->data = x;
p->next = NULL;
if (Q->rear != NULL)
Q->rear->next = p;
Q->rear = p;
if (Q->front == NULL)
Q->front = p;
}
template <class T>
int QDelete(LQueue *Q, T *x)
{
LQNode *p;
if (Q->front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列"岔帽;
return 0;
}
else
{
*x = Q->front->data;
p = Q->front;
Q->front = Q->front->next;
if (Q->front == NULL)
Q->rear = NULL;
free(p);
return 1;
}
}
int QGet(LQueue Q, T *x)
{
if (Q.front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列玫鸟!\n";
return 0;
}
else
{
*x = Q.front->data;
return 1;
}
}
void QDestroy(LQueue Q)
{
LQNode *p, *p1;
p = Q.front;
while (p != NULL)
{
p1 = p;
p = p->next;
free(p1);
}
}
#include<cstdio>
#include<iostream>
using namespace std;
typedef int T;
typedef struct qnode
{
T data;
struct qnode *next;
}LQNode;
typedef int T;
typedef struct
{
LQNode *front;
LQNode *rear;
}LQueue;
class QLink
{
public:
QLink(LQueue *Q);
~QLink();
void QAppend(LQueue *Q, T x);//把元素插入隊尾
int QDelete(LQueue *Q, T *x);//刪除元素
int QGet(LQueue Q, T *x);//取元素
void QDestroy(LQueue Q);//撤銷動態(tài)申請空間
};
template <class T>
QLink<T>::QLink(LQueue *Q)
{
Q->rear = NULL;
Q->front = NULL;
}
template <class T>
void QLink<T>::QAppend(LQueue *Q, T x)
{
LQNode *p;
p = (LQNode *)malloc(sizeof (LQNode));
p->data = x;
p->next = NULL;
if (Q->rear != NULL)
Q->rear->next = p;
Q->rear = p;
if (Q->front == NULL)
Q->front = p;
}
template <class T>
int QDelete(LQueue *Q, T *x)
{
LQNode *p;
if (Q->front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列";
return 0;
}
else
{
*x = Q->front->data;
p = Q->front;
Q->front = Q->front->next;
if (Q->front == NULL)
Q->rear = NULL;
free(p);
return 1;
}
}
int QGet(LQueue Q, T *x)
{
if (Q.front == NULL)
{
cout << "隊列已空無數(shù)據(jù)元素出隊列犀勒!\n";
return 0;
}
else
{
*x = Q.front->data;
return 1;
}
}
void QDestroy(LQueue Q)
{
LQNode *p, *p1;
p = Q.front;
while (p != NULL)
{
p1 = p;
p = p->next;
free(p1);
}
}
棧和隊列
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陌宿,“玉大人锡足,你說我怎么就攤上這事】瞧海” “怎么了舶得?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長爽蝴。 經(jīng)常有香客問我沐批,道長纫骑,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任九孩,我火速辦了婚禮先馆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘躺彬。我一直安慰自己煤墙,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布宪拥。 她就那樣靜靜地躺著仿野,像睡著了一般。 火紅的嫁衣襯著肌膚如雪她君。 梳的紋絲不亂的頭發(fā)上设预,一...
- 文/蒼蘭香墨 我猛地睜開眼灭翔,長吁一口氣:“原來是場噩夢啊……” “哼魏烫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肝箱,我...
- 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響枣申,放射性物質(zhì)發(fā)生泄漏树灶。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一糯而、第九天 我趴在偏房一處隱蔽的房頂上張望天通。 院中可真熱鬧,春花似錦熄驼、人聲如沸像寒。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽诺祸。三九已至,卻和暖如春祭芦,著一層夾襖步出監(jiān)牢的瞬間筷笨,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 一答恶、隊列的定義 【定義】:隊列(queue)是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表萍诱⌒ぃ【特征】:...
- 該系列文章主要作數(shù)據(jù)結(jié)構(gòu)(C語言版)學(xué)習(xí)的筆記。里面代碼的注釋很詳細裕坊,同時提供給大家參考包竹,歡迎指正和指教。 棧的鏈...
- 1.利用棧的數(shù)據(jù)結(jié)構(gòu)特點碍庵,將二進制轉(zhuǎn)換為十進制數(shù) 分析 由于棧具有先進后出的特性映企,我們輸入11001001的二進制...
- 棧的定義 棧實際上也是線性表,只不過是一種特殊的線性表静浴。其特殊性在于棧的基本操作是線性表操作的子集,他們的操作受限...