紧急求救!!! C语言 数据遍历问题。
ucc43 2009-10-17 12:28:56 str4
str2 str5
str1 str3 str6
===========================================================
我用str1(只有str1作为输入参数)查找出str2,str3,假设用str2,str3都能找出str4,str5.,str6(其中str4,str5,str6都是main函数),则用str1总共能找到6条路经。
如: str1->str2->str4(main)
str1->str2->str5(main)
...
现在我想用遍历实现,是不是要用二叉树啊,因为一共有多少层是不确定的,每层又有多少字符串也是不确定的,这些字符串都是从数据库中取出来的。
数据库表中就3个子段,1〉父函数 2 〉子函数 3〉Flag标识 (Flag 等于0是表示没到main函数,等于1时表示已经到了main,无需继续查找)
我的程序逻辑是
struct FNC_FULL_PATH_STRUCT
{
char caParentFncNam[80] ;
char caChildFncNam[80] ;
int iFlag ;
};
typedef struct FNC_FULL_PATH_STRUCT FNC_FULL_PATH_STRUCT ;
===========================================================
FetchFucFullPath(char *pStrFucNam,)
{
/* 拷贝输入参数到要最终输出的数组中 */
strcat(caStrFullPath,"=>");
strcat(caStrFullPath,pFncFullPathStruct[i].caParentFncNam);
/* 返回的纪录条数做循环 ,返回的记录条数存储在结构体数组中 */
/*caStrFullPath为全局数组
pFncFullPathStruct为结构体数组
*/
FetchDB(pStrFucNam,pFncFullPathStruct,&iNumOfRecrd);
for(int i=0;i<iNumOfRecrd;i++,pFncFullPathStruct++)
{
if(Flag == 0)
{
FetchFucFullPath(pFncFullPathStruct[i].caParentFncNam);
}
else
{
printf("======== Full function path is [%s] \n",caStrFullPath);
}
}
}
现在只返回了str1->str2->str4(main),不能从str4返回到str2,再进行遍历,我想得到全部的6条遍历,请教!!!