[데이터 구조] 등 옥 흔 의 프로 그래 밍 작업 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<
이상(옛날 숙제 를 늦게 붙 였 는데...)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.