本文目录一览:
C语言构造空栈为什么要在S前加一个&
这里涉及到C/C++中函数调用时的参数传递。一般来说,都是值得传递,形参的值的改变不影响实参的值。
但在某些情况下,希望函数调用中的形参改变,实参也跟着改变。就像构造一个空栈,此时表示这个栈的数据结构刚被建立起来,原来栈不存在,现在被建立了,改变了,而按通常的方式是不行的。
C++提供了一种被称为引用的参数传递方式,就能实现形参改变实参也跟着改变的效果,也就是问题中说的前面加的情况。
C语言中如何初始化栈 每个元素均为空
1如果顺序栈的定义如下
typedef
struct
{datatype
data[stacksize];
int
top;
}SeqStack;
---则置空栈的操作如下
void
InitStack(seqstack
*s)
{s-top=-1;
}
2如果链栈的定义如下
typedef
struct
node
{datatype
data;
struct
node
*next;
}LinkStack;
---则置空栈的操作如下
void
InitStack(linkstack
*s)
{s-top=null;
}
c语言版数据结构 空栈的构造
栈的本意是一个数组,里面存取数据的方式是先进后出。因此,你需要一个cusor来指定当前的栈顶(可能你使用top实现的),你可能还需要当前存放了多少数据进栈了,栈是否空、满,因此你还需要一个int变量计算栈元素个数。没push+1,没pop
-1。你完全不需要成员stacksize,还有你需要一个栈元素个数的计数器。另外你不需要将形参由引用该为指针,反而降低效率!