설계과제 최종보고서) 진탐색트리를 이용한 검색엔진 만들기
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

설계과제 최종보고서) 진탐색트리를 이용한 검색엔진 만들기에 대한 보고서 자료입니다.

본문내용

<=temp[i]) && (\'z\'>=temp[i])){
i++;
continue;
}
else{
for(int j=i;temp[j];j++)
temp[j]=temp[j+1];
}
}
}
//색인결과 출력
void show_result_hash()
{
printf(\"**********index result**********\\n\");
printf(\"Total number of documents: %d\\n\",document_num);
printf(\"Total number of indexed words: %d\\n\",word_num);
printf(\"Total number of comparison: %d\\n\",compare_num);
}
// 해시테이블에 자료 삽입
void hash_insert(char *word, char *file_name)
{
int count=1;
//저장된 단어인가 검색
list_pointer search=search_hash(word);
if(search){
//문서 리스트 있으면 카운트
if(search_list(search,file_name)){
return ;
}
//없으면 리스트 노드 생성
else{
doc_pointer p;
p=(doc_pointer)malloc(sizeof(doc_node));
p->file_name=file_name;
p->word_count=count;
p->link=search->pointer;
search->pointer=p;
}
return ;
}
int i=hash(word);
list_pointer temp, trail = NULL, lead = hash_table[i];
for(; lead; trail=lead, lead = lead->link)
if(strcmp(lead->word,word)==0)
return;
temp=(list_pointer)malloc(sizeof(list_node));
strcpy(temp->word, word);
temp->link=NULL;
temp->pointer=NULL;
if (trail)
trail->link = temp;
else
hash_table[i] = temp;
//문서이름과 단어 삽입
doc_pointer p;
p=(doc_pointer)malloc(sizeof(doc_node));
p->file_name=file_name;
p->word_count=count;
p->link=temp->pointer;
temp->pointer=p;
word_num++;
}
// 해시 함수 (folding + division (TABLE_SIZE로 나눈 나머지))
int hash(char *key){
return(transform(key) % TABLE_SIZE);
}
// folding (key의 각 character 값을 더함)
int transform(char *key){
int number = 0;
while (*key)
number += *(key++);
return number;
}
//색인용 단어 검색 함수
list_pointer search_hash(char *word)
{
int i = hash(word);
list_pointer ptr = hash_table[i];
while(ptr != NULL) {
compare_num++;
if (strcmp(word, ptr->word)==0)
return ptr;
else
ptr = ptr->link;
}
return NULL;
}
//문서 리스트 검색 함수
doc_pointer search_list(list_pointer search,char *file_name)
{
doc_pointer p=search->pointer;
while(p!=NULL){
if(!strcmp(file_name,p->file_name)){
p->word_count++;
return p;
}
p=p->link;
}
return NULL;
}
//검색용 단어 검색 함수
list_pointer search_word(char *word)
{
int i=hash(word);
list_pointer ptr=hash_table[i];
while(ptr != NULL) {
cmpword_num++;
if (strcmp(word, ptr->word) == 0)
return ptr;
else
ptr=ptr->link;
}
return NULL;
}
//1개 단어 검색결과 출력 함수
void print_result(list_pointer temp,char* word)
{
if(temp==NULL){
printf(\"Noting word!\\n\\n\");
return ;
}
doc_pointer p=temp->pointer;
while(p!=\'\\0\'){
printf(\"<%s> %s : %d\\n\",p->file_name,word,p->word_count);
p=p->link;
}
printf(\"Total number of comparison : %d\\n\\n\",cmpword_num);
cmpword_num=0;
}
//2개 단어 검색결과 출력 함수
void print_result2(list_pointer temp1,list_pointer temp2,char* word1,char* word2)
{
if((temp1==NULL) || (temp2==NULL)){
printf(\"Noting word!\\n\\n\");
return ;
}
doc_pointer p1=temp1->pointer;
doc_pointer p2=temp2->pointer;
while(p1!=\'\\0\'){
while(p2!=\'\\0\'){
if((p1->file_name)==(p2->file_name))
printf(\"<%s> %s: %d, %s: %d\\n\",p1->file_name,word1,p1->word_count,word2,p2->word_count);
p2=p2->link;
}
p1=p1->link;
p2=temp2->pointer;
}
printf(\"Total number of comparison : %d\\n\\n\",cmpword_num);
cmpword_num=0;
}
  • 가격1,900
  • 페이지수13페이지
  • 등록일2020.12.09
  • 저작시기2007.7
  • 파일형식한글(hwp)
  • 자료번호#1141785
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니