#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>
#define ElemType char
#define INIT_SIZE 100//即栈的最大长度,以元素为单位
#define INCREMENT 10//存储分配增量
//顺序栈的数据结构
typedef struct SNode
{
ElemType *base;//在构造之前和销毁之后,base的值为NULL
ElemType *top;//栈顶指针
int stacksize;//当前栈中已有的元素个数
}SqStack;
int InitStack(SqStack &S)
{//构造一个空栈
S.base=(ElemType *)malloc(INIT_SIZE*sizeof(ElemType));
if(S.base == NULL)
{//存储分配失败
printf("内存分配失败!\n\n");return -1;
}
S.top=S.base;
S.stacksize=INIT_SIZE;//初始时栈中没有元素
return 1;
}
void Assignment(SqStack &S)//将表 L 赋值为随机字符串,最小长度为3,最大长度为16
{
int i,p,flag,k=0;
char str[16]={NULL};
srand((unsigned)time(NULL));
p=rand()%12;
for(i=0;i<3+p;i++)//栈中的各个数据元素为随机生成的字母
{//此栈的最小长度为3,可变长部分由随机数p的值来确定
flag=rand()%2;
if(flag)S.base[i]='A'+rand()%26;
建立数据元素为字符型的顺序栈(C语言版)
最新推荐文章于 2022-11-17 15:44:30 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)