【无标题】

#include
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
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;
}

你可能感兴趣的:(算法,数据结构)