参数问题
有人能清楚的说一下参数带*和不带*,参数带&和不带&,参数带&和参数带*的区别吗?经常在书中看到这个,不是很清楚。
刚做一个二叉树的非递归遍历问题,我感觉是参数除了问题,就是不知道处在哪里,有空的帮忙看一下,谢谢!
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define OK 1
#define ERROR 0
typedef struct BiTNode{
char data;
BiTNode *rchild,*lchild;
}BiTNode,*BiTree;
typedef struct{
BiTNode *top,*base;
int stacksize;
}SqStack;
void visit(BiTNode a){
printf("%c ",a.data);
}
int InitStack(SqStack &S){
S.base=(BiTree)malloc(sizeof(BiTNode)*100);
if(!S.base)
return ERROR;
S.top=S.base;
S.stacksize=100;
return OK;
}
int SqStackEmpty(SqStack S){
if(S.top==S.base)return 1;
else return 0;
}
int Push(SqStack &S,BiTNode tree){
if(S.stacksize<=S.top-S.base){
S.base=(BiTNode*)realloc(S.base,(S.stacksize+10)*sizeof(BiTNode));
if(!S.base)return 0;
S.top=S.base+S.stacksize;
S.stacksize+=10;
}
*S.top++=tree;
return 1;
}
int Pop(SqStack &S){
if(S.top==S.base)
return 0;
S.top--;
return 1;
}
void preOrder(BiTree tree){
SqStack S;
InitStack(S);
while(tree->data!='#'||!SqStackEmpty(S)){
while(tree->data!='#'){
visit(*tree);
Push(S,*tree);
tree=tree->lchild;
}
if(!SqStackEmpty(S)){
Pop(S);
tree=tree->rchild;
}
}
}
int main(){
BiTree tree;
printf("请输入一棵树(先序,输入#表示为空):\n");
scanf("%s",&tree);
preOrder(tree);
return OK;
}
刚做一个二叉树的非递归遍历问题,我感觉是参数除了问题,就是不知道处在哪里,有空的帮忙看一下,谢谢!
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#define OK 1
#define ERROR 0
typedef struct BiTNode{
char data;
BiTNode *rchild,*lchild;
}BiTNode,*BiTree;
typedef struct{
BiTNode *top,*base;
int stacksize;
}SqStack;
void visit(BiTNode a){
printf("%c ",a.data);
}
int InitStack(SqStack &S){
S.base=(BiTree)malloc(sizeof(BiTNode)*100);
if(!S.base)
return ERROR;
S.top=S.base;
S.stacksize=100;
return OK;
}
int SqStackEmpty(SqStack S){
if(S.top==S.base)return 1;
else return 0;
}
int Push(SqStack &S,BiTNode tree){
if(S.stacksize<=S.top-S.base){
S.base=(BiTNode*)realloc(S.base,(S.stacksize+10)*sizeof(BiTNode));
if(!S.base)return 0;
S.top=S.base+S.stacksize;
S.stacksize+=10;
}
*S.top++=tree;
return 1;
}
int Pop(SqStack &S){
if(S.top==S.base)
return 0;
S.top--;
return 1;
}
void preOrder(BiTree tree){
SqStack S;
InitStack(S);
while(tree->data!='#'||!SqStackEmpty(S)){
while(tree->data!='#'){
visit(*tree);
Push(S,*tree);
tree=tree->lchild;
}
if(!SqStackEmpty(S)){
Pop(S);
tree=tree->rchild;
}
}
}
int main(){
BiTree tree;
printf("请输入一棵树(先序,输入#表示为空):\n");
scanf("%s",&tree);
preOrder(tree);
return OK;
}
...全文
相关推荐
SpringCloud Feign参数问题及解决方法
然而,在使用Feign时,可能会遇到一些参数问题,例如无参数的问题、单个参数的问题、多参数的问题等。本文主要介绍了这些问题的解决方法。1.
url 传递参数加密问题
### URL传递参数加密问题#### 一、概述在Web应用程序开发过程中,有时需要通过URL来传递一些敏感或重要的参数信息。
smartbi页面面板参数问题
#### 二、页面面板参数同步问题解决方案在Smartbi中,页面间的参数同步是非常实用的功能,可以大大提高用户的使用效率。
Xfire调用webservice无法传递参数问题
标题“Xfire调用WebService无法传递参数问题”暗示了开发者在尝试使用Xfire框架时遇到了参数无法正常传递到Web服务的情况。
解决SpringMVC接收不到ajaxPOST参数的问题
但是,在使用SpringMVC时,经常会遇到ajax POST请求参数接收不到的问题。本文将探讨解决这个问题的方法和原因。问题描述在使用ajax POST请求时,经常会遇到参数接收不到的问题。


