自罚自罚,昨天没按时完成任务,自己打棵trietree(╯‵□′)╯︵┻━┻md真是手生了。

来源:互联网 发布:怎么学好数据库 编辑:程序博客网 时间:2024/04/29 17:31

这是一棵简单字典树构建之后会对他进行补充的,这是练练手。

#include <bits/stdc++.h>struct trietree{    int value = 0;    trietree *ss[100];} head;int buid(trietree *head){    char word[100];    scanf("%s",word);    int len=strlen(word);    trietree *p;    p=head;    printf("length=%d\n",len);    for(int i=0; i<len; i++)    {        if(p->ss[(int)word[i]]!=0)        {            p = p->ss[(int)word[i]];        }        else        {            trietree* node;            printf("input = %c\n",word[i]);            node=(trietree*)malloc(sizeof(trietree));            node->value=0;            memset(node->ss,0,sizeof(trietree));            p->ss[(int)word[i]]=node;            p=node;        }        if(i==len-1)        {            p->value = -1;        }    }}int dfs(trietree *head){    trietree* now;    now=head;    for(int i = 0; i < 100; i ++)    {//        printf("i=%d value=%d\n",i,now->value);        if(now->ss[i]!=0)        {            if(now->ss[i]->value==-1)            {                printf("@@@@@@@@@@@@@@@@@@@@%d@@@@@@@@@@@@@\n",i-48);            }//            printf("char=%d\n",i);            dfs(now->ss[i]);//            printf("point=%d\n",now->ss[i]!=0);        }    }}int main(){    int s;    buid(&head);    buid(&head);    printf("first=%d\n",head.ss[49]->ss[50]->ss[51]->ss[52]->value);    dfs(&head);    return 0;}

美滋滋哈哈。

原创粉丝点击