<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      書山有徑勤為路>>>>>>>>

      <<<<<<<<學海無涯苦作舟!

      鏈表的典型應用——字典樹

      題目:http://acm.swust.edu.cn/oj/problem/842/

      這個題目是有一點復雜的,因為在存儲內容的時候又再次用了鏈表。

      可以說它是鏈表題目的相當典型的例子了。

       

      還是直接上代碼吧。

      View Code
      #include "iostream"
      #include "cstring"
      #include "string"
      #include "cstdio"
      #include "algorithm"
      #include "malloc.h"
      using namespace std;
      typedef struct word{
          char Chn[4];
          struct word *next;
      }word;
      typedef struct node{
          int mark;
          word *str;
          struct node *next[26];
      }node;
      node *head;
      void InitHead(){
          head = (node *)malloc(sizeof(node));
          head->mark = 0;
          head->str = NULL;
          memset(head->next, NULL, sizeof(head->next));
      }
      void Build(char *Eng, char *Chn){
          node *p = head;
          word *w;
          int i, k, Len = strlen(Eng);
          for(i=0; i<Len; i++){
              k = Eng[i]-'a';
              if(p->next[k]==NULL){
                  p->next[k] = (node*)malloc(sizeof(node));
                  p->next[k]->mark = 0;
                  p->next[k]->str = NULL;
                  memset(p->next[k]->next, NULL, sizeof(p->next[k]->next));
              }
              p = p->next[k];
              if(i==Len-1){
                  p->mark = 1;
                  if(p->str==NULL){
                      p->str=(word*)malloc(sizeof(word));
                      strcpy(p->str->Chn, Chn);
                      p->str->next = NULL;
                  }else{
                      w = p->str;
                      while(w->next!=NULL) w=w->next;
                      w=w->next=(word*)malloc(sizeof(word));
                      strcpy(w->Chn, Chn);
                      w->next = NULL;
                  }
              }
          }
      }
      char *Find(char *Eng, int n){
          int i, j, k, Len = strlen(Eng);
          node *p = head;
          word *w;
          for(i=0; i<Len; i++){
              k = Eng[i]-'a';
              p = p->next[k];
              if(p==NULL) return "NO";
              
              if(i==Len-1){
                  if(p->mark==0) return "NO";
                  w = p->str;
                  for(j=1; j<n && w->next!=NULL; j++) w = w->next;
                  return w->Chn;
              }
          }
      }
      int main(){
          char Eng[100], Chn[4];
          int n;
          InitHead();
          while(cin>>Eng){
              if(strcmp(Eng, "end")==0) break;
              cin>>Chn;
              Build(Eng, Chn);
          }
          while(cin>>Eng){
              if(strcmp(Eng, "end")==0) break;
              cin>>n;
              cout<<Find(Eng, n)<<endl;
          }
          return 0;
      }

      但是這里有一個十分蛋疼的現象:

      就是你將上面代碼中的所有char *改成string之后,

      竟然會出現奇怪的現象,也就是什么什么沖突。

      無語呀…………………………………………………………。

      posted on 2012-04-26 20:08  More study needed.  閱讀(266)  評論(0)    收藏  舉報

      導航

      書山有徑勤為路>>>>>>>>

      <<<<<<<<學海無涯苦作舟!

      主站蜘蛛池模板: 亚洲精品国男人在线视频| 好男人日本社区www| 国产精品第二页在线播放| 国产成人无码精品亚洲| 97午夜理论电影影院| 亚洲午夜爱爱香蕉片| 久久精品国产色蜜蜜麻豆| 久久综合精品国产一区二区三区无 | 亚洲三区在线观看内射后入| 巴南区| 国产精品户外野外| 大香蕉av一区二区三区| 中文字幕亚洲综合久久综合| 亚洲国产成人不卡高清麻豆| 亚洲美免无码中文字幕在线| 又大又紧又粉嫩18p少妇| 亚亚洲视频一区二区三区| 国产欧美久久一区二区| 日本阿v片在线播放免费| 中国xxx农村性视频| 国产精品无遮挡猛进猛出| 亚洲成av人片天堂网老年人| 3d全彩无码啪啪本子全彩| 亚洲偷自拍国综合| 国产亚洲精品第一综合| 午夜精品极品粉嫩国产尤物| 婷婷色香五月综合缴缴情香蕉 | 免费无码一区二区三区蜜桃| 中文亚洲成A人片在线观看| 国产黑色丝袜在线播放| 2018年亚洲欧美在线v| 婷婷四房播播| 一区二区和激情视频| 91福利国产成人精品导航| 亚洲欧美日韩愉拍自拍美利坚| 亚洲国产精品久久无人区| 不卡一区二区国产在线| 国产精品中文字幕一二三| 国产成人毛片在线视频| 精品一区二区成人码动漫| 欧美激情一区二区三区成人|