69,336
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int ElemType;
typedef int Status;
//链栈类型
typedef struct Node {
ElemType data; //数据域
struct Node *next; //指针域
}SNode, *LinkStack;
///创建栈
Status CreateStack(LinkStack &S,int m)
{
int i;
LinkStack p;
S=(LinkStack)malloc(sizeof(SNode));
if(!S)exit(OVERFLOW);
S->next=NULL;
printf("请输入数据:\n");
for(i=0;i<m;i++)
{
p=(LinkStack)malloc(sizeof(SNode));
//scanf("%d",p->data);
p->data=rand()%91+10;
p->next=S->next;
S->next=p;
}
return OK;
}
//栈的长度
Status LengthStack(LinkStack S)
{
LinkStack p=S->next;
int i=0;
while(p)
{
++i;
p=p->next;
}//while
printf("Length=%d\n",i);
return OK;
}//Length
//输出
Status PrintStack(LinkStack S)
{
LinkStack q=S->next;
while(q)
{
printf("%d ",q->data);
q=q->next;
}
printf("\n");
}
int main()
{
int n=5;
LinkStack S;
/*printf("请输入栈的个数:");
scanf("%d",&n);*/
if(n<=1){return ERROR;}
CreateStack(S,n);
PrintStack(S);
LengthStack(S);
system("pause");
}