[데이터 구조] 등 옥 흔 의 프로 그래 밍 작업 indexing

#include 
#include 
#include 
#include 
#include "wordlist.h"
using namespace std;
int count = 0;
int main()
{
    ifstream fin("shenbingyu.txt");
    ofstream fout("sby.txt");
    if(!fin){cerr< word;
    string s;
    while(!fin.eof())
    {
        ch=fin.get();
        fout<='A')&&(ch<='Z'))||((ch>='a')&&(ch<='z'))))
        {
            count++;
            if(s!="")word.push_back(s);
            s="";
            continue;
        }
        s.push_back(ch);
    }
    fin.close();
    fout.close();

    passage shenbingyu;

    for(size_t i=0;i

첫 번 째 프로젝트 의 첫 번 째 문제.
한 줄 의 국가 명 을 저장 하 는 데 사용 되 는 데이터 구 조 를 스스로 실현 한 다 는 뜻 이다.그리고 알파벳 순 으로 정렬 할 수 있 습 니 다.
위 는 main 함수 부분 으로 글 을 입력 하 는 데 사 용 됩 니 다.
그 중에서 wordlist 는 자신 이 작성 한 클래스 입 니 다.아래 와 같다
#ifndef WORDLIST_H_INCLUDED
#define WORDLIST_H_INCLUDED
#include 
#include 
#include 
using namespace std;
//node         
class node
{
    public:
    string sword;
    node *next;
    int count;//         
    node(string w =""){next=NULL;count=0;sword=w;}
    ~node(){delete next;}
};
//wordOfSameLetter         
class wordOfSameLetter
{
    private:
    node *head;
    node *curr;
    int size;//      
    //swap    node    
    void swap(node*n1,node*n2)
    {
        string w = n1->sword;n1->sword=n2->sword;n2->sword=w;
        int t = n1->count; n1->count=n2->count; n2->count= t;
    }
    //       
    int compare(string s1,string s2)
    {   char c1=s1[0];char c2=s2[0];
        int i1=s1.size();int i2 = s2.size();
        for(int i=0;is2;
    }
    public:
    wordOfSameLetter()
    {
        head = curr = new node();
        size = 0;
    }
    ~wordOfSameLetter()
    {
        delete head;
        delete curr;
    }
    //    
    void merge()
    {
        for(int i=0;inext;
            tmp = curr;
            while(tmp->next!=NULL)
            {
                //if(tmp->sword > tmp->next->sword)
                if(compare(tmp->sword,tmp->next->sword)==1)
                    swap(tmp,tmp->next);
                tmp = tmp->next;
            }
        }
    }
    void insertl(string w)//  wordOfSameLetter  w     count++;         
    {   bool f = false;
        curr =head;
        while(curr->next!=NULL)
        {
            curr=curr->next;
            if(w==curr->sword)
            {
                curr->count++;
                f = true;
            }
        }
        if(!f){
            curr = curr->next =new node(w);
            curr->count++;
            size++;}
    }
    void print()
    {
        merge();//          merge  
        curr = head;
        while(curr->next!=NULL)
        {
            curr = curr->next;
            cout<sword;
            cout<count<next=new letterlist(ch,NULL);
            curr=curr->next;
        }
    }
    ~passage()
    {
        delete head;
        delete curr;
    }
    void insert(string w)// passage       
    {
        char ch = w[0];
        for(curr=head->next;curr!=NULL;curr=curr->next)
        {
            if((ch==curr->letter)||(ch==(curr->letter+32)))
            {
                curr->insertw(w);
                break;
            }
        }
    }
    void print()//        letterlist
    {
        for(curr=head->next;curr!=NULL;curr=curr->next)
        {
            if(curr->nol==0) continue;
            cout<letter<print();
            cout<

이상(옛날 숙제 를 늦게 붙 였 는데...)


좋은 웹페이지 즐겨찾기