资源简介
华中科技大学C++实验源代码和可执行程序,以及报告。
代码片段和文件信息
#include
#include
#include
#include
#include
struct STACK {
int *elems; //申请内存用于存放栈的元素
int maxNum; //栈能存放的最大元素个数
int pos; //栈实际已有元素个数,栈空时pos=0;
};
void initSTACK(STACK *const p int m); //初始化p指向的栈:最多m个元素
void initSTACK(STACK *const p STACK * const s); //用栈s初始化p指向的栈
int sizeNum(const STACK *const p); //返回p指向的栈的最大元素个数max
int howMany(const STACK *const p); //返回p指向的栈的实际元素个数pos
int getelem(const STACK *const p int x); //取下标x处的栈元素
STACK *const push(STACK *const p int e); //将e入栈,并返回p
STACK *const pop(STACK *const p int *e); //出栈到e,并返回p
STACK *const assignValue(STACK*const p STACK *const s); //赋s给p指的栈并返回p
void print(const STACK*const p); //打印p指向的栈
void destroySTACK(STACK*const p); //销毁p指向的栈
FILE *fp;
int main(int argc char * argv[])
{
int err;
if ((err = fopen_s(&fp“U201414596_1““w“)) != 0) {
printf(“Cannot open file strike any key exit!“);
getchar();
}
if (argc == 1)
{
struct STACK *pStack = (struct STACK *)malloc(sizeof(struct STACK));
struct STACK *sStack = (struct STACK *)malloc(sizeof(struct STACK));
initSTACK(sStack 5);
push(sStack 4);
push(sStack 7);
push(sStack 6);
push(sStack 1);
push(sStack 3);
push(sStack 4);
int operate = 1; //操作序号 在0-12之间
int isInitial = 0; //判断栈是否存在
int maxNum;
int e;
int temp;
int input;
while (operate) {
system(“cls“);
printf(“\n\n“);
printf(“ 欢 迎 使 用 顺 序 线 性 表 菜 单 \n“);
printf(“-------------------------------------------------\n“);
printf(“ 1. 初始化栈P 7. 将一个数出栈到e\n“);
printf(“ 2. 从栈S初始化栈P 8. 赋s给p指向的栈\n“);
printf(“ 3. 栈元素的最大个数 9. 打印p指向的栈 \n“);
printf(“ 4. 栈中实际元素个数 10. 销毁p指向的栈\n“);
printf(“ 5. 取下标为x的栈元素 \n“);
printf(“ 6. 输入一个数并入栈 0. 退出 \n“);
printf(“-------------------------------------------------\n“);
printf(“ 请选择你的操作[0~11]:“);
scanf_s(“%d“ &operate);
switch (operate)
{
case 1:
//InitStack
if (isInitial == 0)
{
printf(“\n\t请输入栈的大小:“);
scanf_s(“%d“ &maxNum);
initSTACK(pStack maxNum);
isInitial = 1;
printf(“\n\t新建栈成功,栈的大小为%d\n“ maxNum);
}
else
{
printf(“\n\t栈已经被创建\n“);
}
getchar();
printf(“\n\t\t(按任意键继续……)\n“);
getchar();
break;
case 2:
//initSTACK:S-P
if (isInitial)printf(“\n\t栈p已经初始化!“);
else
{
initSTACK(pStack sStack);
printf(“\n\t成功从栈s新建栈p“);
}
getchar();
printf(“\n\t\t(按任意键继续……)\n“);
getchar();
break;
case 3:
//sizeNum
if (!isInitial)printf(“\n\t栈p不存在!“);
else
{
temp = sizeNum(pStack);
printf(“\n\t该栈的最大容量是%d“ temp);
}
getchar();
printf(“\n\t\t(按任意键继续……)\n“);
getchar();
break;
case 4:
//howMany
if (!isInitial)printf(“\n\t栈p不存在!“);
e
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-28 22:11 U201414596\
目录 0 2018-10-28 22:11 U201414596\U201414596_1\
文件 12142 2018-10-11 21:19 U201414596\U201414596_1\U201414596_1.cpp
文件 47104 2017-10-29 20:35 U201414596\U201414596_1\U201414596_1.exe
目录 0 2018-10-28 22:11 U201414596\U201414596_2\
文件 11381 2017-11-08 21:00 U201414596\U201414596_2\U201414596_2.cpp
文件 55808 2017-11-05 10:27 U201414596\U201414596_2\U201414596_2.exe
目录 0 2018-10-28 22:11 U201414596\U201414596_3\
文件 11315 2017-11-08 20:55 U201414596\U201414596_3\U201414596_3.cpp
文件 56832 2017-11-05 11:49 U201414596\U201414596_3\U201414596_3.exe
目录 0 2018-10-28 22:11 U201414596\U201414596_4\
文件 11577 2017-11-09 19:21 U201414596\U201414596_4\U201414596_4.cpp
文件 57344 2017-11-09 19:19 U201414596\U201414596_4\U201414596_4.exe
目录 0 2018-10-28 22:11 U201414596\U201414596_5\
文件 13885 2017-11-09 21:55 U201414596\U201414596_5\U201414596_5.cpp
文件 61952 2017-11-09 21:55 U201414596\U201414596_5\U201414596_5.exe
目录 0 2018-10-28 22:11 U201414596\U201414596_6\
文件 16531 2017-11-23 21:45 U201414596\U201414596_6\U201414596_6.cpp
文件 69120 2017-11-23 20:26 U201414596\U201414596_6\U201414596_6.exe
文件 1086900 2017-11-23 21:52 U201414596\U201414596_6\U201414596_6_卢振兴.doc
- 上一篇:C++课设MFC实现人员信息管理系统
- 下一篇:费诺编码的C语言实现
评论
共有 条评论