pallas 发表于 2021-12-3 10:58:01

c++栈和队列

运行不了,不知道怎么改,求助大佬!!


1. /*定义顺序栈的存储结构*/
typedef struct {
   ElemType stack;
   int top;
}SqStack;
/*初始化顺序栈函数*/
void InitStack(SqStack *p)
{q=(SqStack*)malloc(sizeof(SqStack) /*申请空间*/)
/*入栈函数*/
void Push(SqStack *p,ElemType x)
{if(p->top<MAXNUM-1)
   {p->top=p->top+1;   /*栈顶+1*/
      p->stack=x; }/*数据入栈*/
}
/*出栈函数*/
ElemType Pop(SqStack *p)
{x=p->stack; /*将栈顶元素赋给x*/
p->top=p->top-1; } /*栈顶-1*/
/*获取栈顶元素函数*/
ElemType GetTop(SqStack *p)
{ x=p->stack;}
/*遍历顺序栈函数*/
void OutStack(SqStack *p)
{ for(i=p->top;i>=0;i--)
printf("第%d个数据元素是:%6d\n",i,p->stack);}
/*置空顺序栈函数*/
void setEmpty(SqStack *p)
{ p->top= -1;}
2. /*定义链队列*/
typedef struct Qnode
{   ElemType data;
   struct Qnode *next;
}Qnodetype;
typedef struct
{   Qnodetype *front;
   Qnodetype *rear;
}Lqueue;
/*初始化并建立链队列函数*/
void creat(Lqueue *q)
{   h=(Qnodetype*)malloc(sizeof(Qnodetype)); /*初始化申请空间*/
   h->next=NULL;
   q->front=h;
   q->rear=h;
for(i=1;i<=n;i++)*利用循环快速输入数据*/
   {   scanf("%d",&x);
            Lappend(q,x);}   /*利用入链队列函数快速输入数据*/
}
/*入链队列函数*/
void Lappend(Lqueue *q,int x)
{ s->data=x;
   s->next=NULL;
   q->rear->next=s;
   q->rear=s;}
/*出链队列函数*/
ElemType Ldelete(Lqueue *q)
{ p=q->front->next;
   q->front->next=p->next;
   if(p->next==NULL)
   q->rear=q->front;
   x=p->data;
   free(p);} /*释放空间*/
/*遍历链队列函数*/
void display(Lqueue *q)
{ while(p!=NULL)/*利用条件判断是否到队尾*/
   {   printf("%d-->",p->data);
            p=p->next;
   }
}

pallas 发表于 2021-12-3 10:59:20

发错了
页: [1]
查看完整版本: c++栈和队列