栈的入栈和出栈操作的实现

来源:互联网 发布:aegisub for mac 编辑:程序博客网 时间:2024/05/01 03:33

C++代码如下:

#include <iostream>#include <stdio.h>#include <string.h>#include <conio.h>using namespace std;typedef struct student{int data;struct student *next;}node;typedef struct stackqueue   //栈有两个节点,栈顶和栈底{node *zhandi,*top;}queue;queue *insert(queue *HQ,int x)   //入栈{node *s;s=(node *)malloc(sizeof(node));s->data=x;s->next=NULL;if (HQ->zhandi==NULL){HQ->zhandi=s;HQ->top=s;}else{HQ->top->next=s;HQ->top=s;}return HQ;}queue *del(queue *HQ)    //出栈{node *p;int x;if (HQ->zhandi==NULL){cout<<"溢出";}else{x=HQ->zhandi->data;p=HQ->zhandi;if (HQ->zhandi==HQ->top){HQ->zhandi=NULL;HQ->top=NULL;}else{while(p->next!=HQ->top){p=p->next;}HQ->top=p;HQ->top->next=NULL;}return HQ;}}


0 0
原创粉丝点击