|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
运行不了,不知道怎么改,求助大佬!!
1. /*定义顺序栈的存储结构*/
typedef struct {
ElemType stack[MAXNUM];
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[p->top]=x; } /*数据入栈*/
}
/*出栈函数*/
ElemType Pop(SqStack *p)
{x=p->stack[p->top]; /*将栈顶元素赋给x*/
p->top=p->top-1; } /*栈顶-1*/
/*获取栈顶元素函数*/
ElemType GetTop(SqStack *p)
{ x=p->stack[p->top];}
/*遍历顺序栈函数*/
void OutStack(SqStack *p)
{ for(i=p->top;i>=0;i--)
printf("第%d个数据元素是:%6d\n",i,p->stack[i]);}
/*置空顺序栈函数*/
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;
}
}
|
|