2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 华中科技大学计算机学院c 实验 华中科技大学计算机学院C实验报告-实验一.doc...

华中科技大学计算机学院c 实验 华中科技大学计算机学院C实验报告-实验一.doc...

时间:2022-04-02 23:06:47

相关推荐

华中科技大学计算机学院c 实验 华中科技大学计算机学院C实验报告-实验一.doc...

课 程 实 验 报 告

课程名称:面向对象程序设计

实验名称:面向对象的整型栈编程

院系 : 计算机科学与技术

专业班级:CS1209班

学号 :

姓名 :

指导教师:李春花

1月22日

一、需求分析

题目要求

整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶

添加一个整型元素、出栈等。整型栈类型及其操作函数采用非面向对象的纯C 语言定义,请

将完成上述操作的所有函数采用纯C 语言编程,然后写一个 main 函数对栈的所有操作函数

进行测试。

struct STACK{

int*elems;

始化 p 指向

的栈:最多m 个元素 ");

printf("\t\t 2.用栈 s 初始化 p 指向的栈 \n");

printf("\t 3. 返回 p 指向的栈的实际元素个数pos");

printf("\t 4. 将 e 入栈,并返回p\n");

printf("\t 5. 出栈到 e,并返回p");

printf("\t\t\t 6.赋 s 给 p 指的栈 ,并返回 p\n");

printf("\t 7. 打印 p 指向的栈 ");

printf("\t\t\t 8.销毁 p 指向的栈 \n");

printf("\t\t\t\t 0.退出程序 \n");

printf("\t****************************************************************\n");

}

typedef struct STACK{

int *elems;// 申请内存用于存放集合的元素

int max;// 集合能存放的最大元素个数

int pos;// 集合实际已有元素个数,集合空时pos=0;

} STACK;

void initSTACK(STACK *const p, int m)

{

p->max=m;

sit=m;

p->elems=(int*)malloc(m*sizeof(int));

p->pos=0;

}

void initSTACK(STACK* pset, const STACK&s)

{

initSTACK(pset,;

int i;

if==NULL)

printf("s 栈为空,请初始化

else

for(i=0;i

{

s!! \n");

pset->elems[i]=[i];

pset->pos++;

}

}

inthowMany (const STACK *const p)

{

return (p->pos);

}

STACK *const push(STACK *const p, int e)

{

int m;

if(p->pos==p->max)

{ printf(" 栈已经为满 \n");

printf(" 是否扩展栈

1 为是,

0 为否 \n");

scanf("%d",&m);

if(m==1)

{

p->elems=(int*)realloc(p,(p->pos+1)*sizeof(int));

p->elems[p->pos+1]=e;

p->pos=p->pos+1;

return (p);

}

else

printf(" 插入失败 \n");

}

else

{p->elems[p->pos]=e;

p->pos=p->pos+1;

return (p);

}

}

STACK *const pop(STACK *const p, int &e)

{

int n;

if(p->pos==0)

{

printf(" 栈为空!! ");

}

else

e=p->elems[p->pos-1];

p->pos--;

return (p);

}

STACK *const assign(STACK*const p, const STACK&s)

{

p->elems=;

p->max=;

p->pos=;

return p;

}

void print(STACK*p)

{

int i;

if(p->pos==0)

{

printf(" 栈为空!! \n");

printf(" 最大容量为:\t%d",p->max);

}

else

{

printf(" 最大容量为: \t%d",p->max);

printf("\n当前的数: \n%d\n",p->pos);

printf(" 里面的元素为:\n");

for(i=p->pos-1;i>=0;i--)

{

printf("%d\t",p->elems[i]);

}

}

}

void destroySTACK(STACK*const p)

{

free(p->el

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。