제가 함수구현한 방법인데요 여기서 트리에 자료가 있는 경우에 어떻게 해야될지 몰라서 좀 구현해 주시면 안될까요?
//문자열의 최대 길이
#define MAXLENGTH 30
//텍스트파일 이름의 최대 길이
#define MAXNAME 15
//단어의 갯수와 라인을 표시할 스택
struct Number{
int nFrequency;
int nLines;
};
typedef struct Number NUMBERS;
//트리노드 구조체
struct TreeNode{
char cData[MAXLENGTH];
NUMBERS *ptNumbers;
struct TreeNode *ptLeft;
struct TreeNode *ptRight;
};
typedef struct TreeNode TREENODE;
//트리 구조체
struct Tree{
int nTreeSize;
TREENODE *ptRoot;
};
typedef struct Tree TREE;
void initTree(TREE *ptTree); //트리초기화
void storeTree(TREE *ptTree, FILE *pfFile); //텍스트 파일을 트리에 저장
void storeTreeSub(TREE *ptTree, char *cWord); //텍스트 파일을 트리에 저장하는 함수
void searchWord(TREE *ptTree, char strWord[]); //단어를 트리를 이용해 검색
void main()
{
int i=0;
FILE *pfFile;
TREE *ptTree;
char strFileName[MAXNAME];
char strText;
char strWord[MAXLENGTH];
char cCommand;
ptTree = (TREE *)malloc(sizeof(TREE));
initTree(ptTree);
printf("File name(No file extension) : ");
gets(strFileName);
fflush(stdin);
strcat(strFileName, ".txt");
pfFile = fopen(strFileName, "r");
if(pfFile == NULL)
{
printf("file open error!\n");
return;
}
storeTree(ptTree, pfFile);
printf("=============================== Text File ===============================\n");
while(true)
{
strText = fgetc(pfFile);
if(strText == EOF) break;
putchar(strText);
}
printf("\n");
printf("=========================================================================\n");
fclose(pfFile);
printf("S : Search, Q : Quit\n");
do{
//커맨드 입력
printf("Command : ");
cCommand = getch();
cCommand = toupper(cCommand);
putch(cCommand);
printf("\n");
switch(cCommand)
{
case 'S' : //search
printf("Search Word : ");
gets(strWord);
fflush(stdin);
searchWord(ptTree, strWord);
break;
case 'Q' : //Quit
break;
default : //wrong command
printf("\nWrong command. Try again\n");
}
}
while(cCommand != 'Q');
}
void storeTree(TREE *ptTree, FILE *pfFile)
{
char cWord[MAXLENGTH];
while(feof(pfFile))
{
int i = 0;
while(cWord[i] != '\n')
{
cWord[i] = fgetc(pfFile);
cWord[i] = tolower(cWord[i]);
if(cWord[i] == '\0')
storeTreeSub(ptTree, cWord);
i++;
}
}
}
//텍스트 파일을 트리에 저장하는 함수
void storeTreeSub(TREE *ptTree, char *cWord)
{
TREENODE *ptTempNode;
ptTempNode = (TREENODE *)malloc(sizeof(TREENODE));
ptTempNode->ptLeft = NULL;
ptTempNode->ptLeft = NULL;
strcpy(ptTempNode->cData, cWord);
//트리가 비어있는 경우
if(ptTree->nTreeSize = 0)
ptTree->ptRoot = ptTempNode;
printf("%s\n", ptTempNode->cData);
//트리에 자료가 있는 경우
}
회원가입하면 50이 기본으로 생기지만
나머지 50이상은 커뮤니티 활동을 하시면 조금씩 쌓이게 됩니다.
글을작성하시면 5납, 자료를 업로드 하시면 10납,
댓글을 올리시면 2납, 추천을 받으시면 20납을 받게됩니다.
그러나 비추천을 받으시면 -10납이라고 하네요.
이 싸이트의 기본 이념이 자신의 정보를 먼저 공유함으로써
다른 사람의 자료도 볼 수 있다는 것입니다.
이것이 진정한 정보공유라는 것이지요.
열심히 활동하셔서 정회원이 되시기 바랍니다. >.<