什么是堆栈?

z820401 2003-10-17 04:16:43
什么是堆栈?谢谢了。
...全文
275 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
uglykoala 2003-10-18
  • 打赏
  • 举报
回复
随便写个堆栈存取和打印的函数呀。
#define NULL 0
struct node
{
int data;
struct node *next;
};
typedef struct node list;
typedef list *link;
link stack=NULL;
void push()
{int value;
link newnode;
printf("please input the data of the stack\n");
scanf("%d",&value);
newnode=(link)malloc(sizeof(list));
newnode->data=value;
newnode->next=stack;
stack=newnode;
}
void pop()
{link top;
if("stack!=NULL")
{
top=stack;
stack=stack->next;
free(top);
}
else
printf("this stack is empty\n");
}
void print()
{link temp=NULL;
temp=stack;
if(temp==NULL)
printf("this stack is empty\n");
else
{
while(temp!=NULL)
{
printf("%d\n",temp->data);
temp=temp->next;
}
}
}
void main()
{link point;
int select;
printf("1)input a stack data\n");
printf("2)output a stack data\n");
printf("3)print current stack data\n");
printf("other is exit\n");
scanf("%d",&select);
while(select==1||select==2||select==3)
{

switch(select)
{ case 1: push();
break;
case 2: pop();
break;
case 3:print();
break;
}
printf("1)input a stack data\n");
printf("2)output a stack data\n");
printf("3)print current stack data\n");
printf("other is exit\n");
scanf("%d",&select);
};
}
wgzh 2003-10-18
  • 打赏
  • 举报
回复
一个已完成编译的C程序取得并使用4块在逻辑上不同且用于不同目的的内存区域。第一块区域含有程序代码;相邻的一块内存区域存放全局变量;其他两块分别是栈(stack)和堆(heap)。
"栈"用来处理程序运行的许多事务:保存函数调用时的返回地址,函数的变元,局部变量以及CPU的当前状态。
"堆"是一个自由内存区域,程序可利用C语言的动态分配函数使用它。
langzi8818 2003-10-18
  • 打赏
  • 举报
回复
stack,存放你非动态申请的变量==(系统自动分配的——)
HEAP,存放动态申请的变量
rogel2003 2003-10-18
  • 打赏
  • 举报
回复
FILO,先进先出的一个内存段,只有一个端口用来进行数据的存取
sunhaifeng 2003-10-18
  • 打赏
  • 举报
回复
严蔚敏《数据结构》》上就有
z820401 2003-10-18
  • 打赏
  • 举报
回复
谢谢各位,可以给个例子程序说明吗?谢谢了
topjupiter 2003-10-18
  • 打赏
  • 举报
回复
其实最大的不同在于“堆”是直接申请的
而“栈”是有序申请的,先进后出的
minghui000 2003-10-18
  • 打赏
  • 举报
回复
随便
eliza007 2003-10-18
  • 打赏
  • 举报
回复
“后进先出”表!
xushawn 2003-10-17
  • 打赏
  • 举报
回复
属于程序可用内存的一部分,用来存放局部变量,比如函数内声明的局部变量,通常用来与堆(heap)内存区分
Hot_Forever 2003-10-17
  • 打赏
  • 举报
回复
stack,内存段,一般用于保存局部变量,在调用函数的时候可以把参数和局部变量压入堆栈在离开函数的时候弹出。堆栈的机制:后进先出
C++的内存段出了堆栈外还有堆heap,也就是用指针动态创建的对象
此外还有全局数据段,保存全局变量和常量

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧