符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
函数的形参,本身在函数内部才会用到,两个肯定不是同一个东西,各自在各自的函数中有效。因为操作的都是同一个变量,所以命名相同而已。
为鄂托克前等地区用户提供了全套网页设计制作服务,及鄂托克前网站建设行业解决方案。主营业务为成都网站制作、网站设计、外贸网站建设、鄂托克前网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
isempty()就是看表达式的运算结果是否为空,为空返回true,反之则返回false
string s = "";if (s.empty())
{
cout
"字符串为空。。";
}
else
{
cout "字符串不为空。。";
}
s.empty();
empty是stack的一个方法,此处的作用是用来判断s这个对象中间是否为空,如果s这个容器对象中一个元素都没有保存,那么返回true,否则返回false。所以你要使用这个方法就应该用一个
bool变量
接受
返回值
才有意义
递归非递归都在那里了,自己该一下
#includestdio.h
#includestdlib.h
#define ERROR 0
#define OK 1
#define OVERFLOW -2
#define S_INIT_SIZE 100 //存储空间初时分配量
#define SINCREMENT 10 //存储空间分配增量
typedef int Status;
typedef struct BTNode
{ //二叉树的二叉链表存储表示
char data;
struct BTNode *lchild,*rchild; //左右孩子指针
}BTNode,*BT;
typedef struct
{ BT *base;
BT *top; //栈顶指针
int stacksize; //当前已经分配的存储空间,以元素为单位
}SqS;
Status InitS(SqS S)
{ //构造一个空栈
S.base=(BT *)malloc(S_INIT_SIZE*sizeof(BT));
if(!S.base) exit(OVERFLOW); //存储分配失败
S.top=S.base;
S.stacksize=S_INIT_SIZE;
return OK;
}//InitS
Status Gettop(SqS S, BT e)
{ if(S.top==S.base) return ERROR;
e=*(S.top-1);
return OK;
}//Gettop
Status Push(SqS S,BT e)
{ //插入元素为e的栈顶元素
if(S.top-S.base=S.stacksize)
{ //栈满,追加存储空间'
S.base=(BT *)realloc(S.base,(S.stacksize+SINCREMENT)*sizeof(BT));
if(!S.base) exit(OVERFLOW); //存储分配失败
S.top=S.base+S.stacksize;
S.stacksize+=SINCREMENT;
}
*S.top++=e;
return OK;
}//Push
Status Pop(SqS S,BT e)
{ if(S.top==S.base) return ERROR;
e=*--S.top;
return OK;
}//Pop
Status SEmpty(SqS S)
{ if(S.top==S.base) return OK;
return ERROR;
}//SEmpty
Status CreatBT(BT T)
{ //构造二叉链表表示的二叉树
char ch;
scanf("%c",ch);
if(ch==' ') T=NULL;
else
{ if(!(T=(BTNode *)malloc(sizeof(BTNode)))) exit(OVERFLOW);
T-data=ch; //生成跟结点
CreatBT(T-lchild); //构造左子树
CreatBT(T-rchild); //构造右子树
}
return OK;
}//CreatBT
Status Output(char e)
{ printf("%c ",e);
return OK;
}
Status Inorder(BT T,Status(*Output)(char ch))
{ BT p; SqS S;
InitS(S); p=T;
while(p||!SEmpty(S))
{ if(p){Push(S,p); p=p-lchild;}//根指针进栈,遍历左子树
else
{ //根指针退栈,访问根结点,遍历右子树
Pop(S,p); if(!Output(p-data)) return ERROR;
p=p-rchild;
}// else
}//while
return OK;
}//Inorder
Status Traverse(BT T,Status(*Output)(char ch))
{
if(T)
{
if(Traverse(T-lchild,Output))
if(Output(T-data))
if(Traverse(T-rchild,Output)) return OK;
return ERROR;
}
else return OK;
}//Traverse
void main()
{ BT T;
printf("请出入:");
CreatBT(T);
printf("递归输出: ");
Traverse(T,Output);
printf("\n");
printf("非递归输出:");
Inorder(T,Output);
printf("\n");
}