Image
WELCOME TO MY HOMEPAGE
ぽてとのC言語練習中ページ
Image

Word.c ver.005 改訂版のソースです。

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

#define WORDMAX 64

typedef struct tnode{
  char word[WORDMAX];
  /* int count=0; */
  int count;
  struct tnode *left;
  struct tnode *right;
}Node;


Node* makeNode(const char *str){
  /* ノード作成 */
  Node *root;
  root=(Node *)malloc(sizeof(Node));

  strcpy(root->word, str);
  root->count=1;
  root->left=root->right=NULL;

  return root;
}

Node* addNode(Node* p, const char *str){
  /* ノード追加処理 */

  if (p==NULL){   /*今いるところが空欄なら新ノードを作成*/
    p=makeNode(str);
  }
  else if (!strcmp(str, p->word))
    p->count++;
  else if (strcmp(str, p->word)<0)
    p->left=addNode(p->left, str);
  else
    p->right=addNode(p->right, str);

  return p;
}
void TraversalNode(const Node *p){
  /* 解析と出力*/
  if (p!=NULL){
    TraversalNode(p->left);
    printf("%s %4d\n", p->word, p->count);
    TraversalNode(p->right);
  }
}

int main(void){

  FILE *fp;
  int i, state=0;
  char c, str[WORDMAX];

  Node root={"\0",0, NULL, NULL};

  str[0]='\0';

	while(getword(word, MAXWORD)!=EOF)


  /* ファイル操作 */
  fp=fopen("file1.txt", "r");


	/*ここでファイルから文章を読み込み、英単語をaddnode()に渡す予定です。*/


  }
  TraversalNode(&root);/*ルートの位置からトラバーサルしながら出力する*/ 
   fclose(fp);
}

トップページへ戻る


GeoCities Japan

メイン / コミュニティ / アベニュー / E-List / 街角広場
インフォメーションセンター / 検索 / ヘルプ / ガイドライン