#include<iostream>
using namespace std;
typedef struct StackNode {
int data;
struct StackNode* next;
}StackNode,*LinkStack;
void InitStaack(LinkStack& s) {
s = NULL;
return;
}
bool StackEmpty(LinkStack s) {
if (s == NULL)return true;
return false;
}
//链栈的入栈
int push(LinkStack& s, int e) {
LinkStack p = new StackNode;
p->data = e;
p->next = s;
s = p;
return 1;
}
int pop(LinkStack& s, int& e) {
if (s = NULL) {
return 0;
}
e = s->data;
LinkStack p = s;
s = s->next;
delete p;
return 1;
}
int getTop(LinkStack s) {
if (s != NULL)return s->data;
}
int main() {
return 0;
}
链队列
#include<iostream>
using namespace std;
typedef struct Qnode {
int data;
Qnode* next;
}QNode,*QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
//链表的初始化
int initQueue(LinkQueue& Q) {
Q.front = Q.rear = new QNode;
Q.front->next = NULL;
return 1;
}
//链队的销毁
int DestoryQueue(LinkQueue& Q) {
while (Q.front) {
QueuePtr p;
p = Q.front->next;
free(Q.front);
Q.front = p;
}
return 1;
}
//链队的入队
int EnLinkQueue(LinkQueue& Q, int e) {
QueuePtr p = new QNode;
p->data = e;
p->next = NULL;
Q.rear->next = p;
Q.rear = p;
return 1;
}
//链队的出队
int DeLinkQueue(LinkQueue& Q, int &e) {
if (Q.rear == Q.front)return 0;
QueuePtr p;
p = Q.front->next;
e = p->data;
Q.front->next = p->next;
if (Q.front == Q.rear) {
Q.rear = Q.front;
}
delete p;
return 1;
}
//链队列的对头元素
int GetHead(LinkQueue& Q, int& e) {
if (Q.front == Q.rear)return 0;
e = Q.front->next->data;
return 1;
}
int main() {
return 0;
}