클래스 보기
#include<iostream>
class Node{
public:
Node(); //생성자
virtual ~Node(); //소멸자
char ch;
Node * next;
Node * prev;
};
class Linkedlist : public Node{ //Node클래스 상속
private:
Node * head, * temp, * tail;
public:
Linkedlist(); //생성자
virtual ~Linkedlist(); //소멸자
void search(char); //검색함수.
void output(void); //데이터 출력함수.
};
class Node{
public:
Node(); //생성자
virtual ~Node(); //소멸자
char ch;
Node * next;
Node * prev;
};
class Linkedlist : public Node{ //Node클래스 상속
private:
Node * head, * temp, * tail;
public:
Linkedlist(); //생성자
virtual ~Linkedlist(); //소멸자
void search(char); //검색함수.
void output(void); //데이터 출력함수.
};
메인소스 보기
#include"lib.h" //해더파일 상속.
using std::cout;
using std::cin;
int main(void){
Linkedlist data; //data 객체 생성.
data.output(); //모든 데이터 출력.
cout<<"\n검색할 문자를 입력하세요 : ";
char ch;
cin>>ch; //검색할 문자 입력.
data.search(ch); //검색함수 호출.
return 0;
}
using std::cout;
using std::cin;
int main(void){
Linkedlist data; //data 객체 생성.
data.output(); //모든 데이터 출력.
cout<<"\n검색할 문자를 입력하세요 : ";
char ch;
cin>>ch; //검색할 문자 입력.
data.search(ch); //검색함수 호출.
return 0;
}
생성자,소멸자 보기
#include"lib.h"
Node::Node(){
//cout<<"node 클래스의 객체 생성!"<<endl;
}
Node::~Node(){
//cout<<"node 클래스의 객체 소멸!"<<endl;
}
Linkedlist::Linkedlist(){
//cout<<"link 클래스의 객체 생성!"<<endl;
head = new Node; //부모객체를 동적할당시킴.
tail = head;
head->next = NULL; //출력과 검색을 위해 head의 다음포인터는 널값을 가르키게함
head->prev = NULL;
for(char x='A'; x<='Z'; x++){ //문자 A~Z까지 각 데이터에 대입.
temp = new Node; //동적할당으로 temp객체를 생성.
temp->ch = x; //생성된 데이터의 맴버데이터에 값 대입.
temp->next = head; //역순출력이므로 항상 head를 가르킴.
head->prev = temp;
head = temp; //다음 데이터와의 연결을 위해 head가 됨.
head->prev = NULL;
}
}
Linkedlist::~Linkedlist(){ //객체 소멸자.
temp = head; //데이터의 시작부분을 가르킴.
while(temp->next !=NULL){ //다음 데이터를 가르키는 포인터가 널이 아닐때까지.
head = temp->next; //head에 다음 데이터를 대입.
delete temp; //메모리를 힙으로부터 환함.
temp = head; //다음 데이터를 다시 temp에 대입.
}
delete head; //마지막으로 head도 소멸!
//cout<<"link 클래스의 객체 소멸!"<<endl;
}
Node::Node(){
//cout<<"node 클래스의 객체 생성!"<<endl;
}
Node::~Node(){
//cout<<"node 클래스의 객체 소멸!"<<endl;
}
Linkedlist::Linkedlist(){
//cout<<"link 클래스의 객체 생성!"<<endl;
head = new Node; //부모객체를 동적할당시킴.
tail = head;
head->next = NULL; //출력과 검색을 위해 head의 다음포인터는 널값을 가르키게함
head->prev = NULL;
for(char x='A'; x<='Z'; x++){ //문자 A~Z까지 각 데이터에 대입.
temp = new Node; //동적할당으로 temp객체를 생성.
temp->ch = x; //생성된 데이터의 맴버데이터에 값 대입.
temp->next = head; //역순출력이므로 항상 head를 가르킴.
head->prev = temp;
head = temp; //다음 데이터와의 연결을 위해 head가 됨.
head->prev = NULL;
}
}
Linkedlist::~Linkedlist(){ //객체 소멸자.
temp = head; //데이터의 시작부분을 가르킴.
while(temp->next !=NULL){ //다음 데이터를 가르키는 포인터가 널이 아닐때까지.
head = temp->next; //head에 다음 데이터를 대입.
delete temp; //메모리를 힙으로부터 환함.
temp = head; //다음 데이터를 다시 temp에 대입.
}
delete head; //마지막으로 head도 소멸!
//cout<<"link 클래스의 객체 소멸!"<<endl;
}
출력 소스 보기
#include"lib.h"
using std::cout;
void Linkedlist::output(){ //데이터 출력함수.
/* temp = head; //시작은 링크리스트의 처음으로 이동.
while(temp->next != NULL){ //다음 데이터를 가르키는 포인터가 널이아닐때까지
cout<<temp->ch<<" "; //포인터로 데이터안에 문자를 출력.
temp = temp->next; //다음 데이터로 이동.
}
cout<<endl;
*/
temp = tail;
while(temp->prev !=NULL){ //데이터 정방향 출력.
temp = temp->prev;
cout<<temp->ch<<" ";
}
}
using std::cout;
void Linkedlist::output(){ //데이터 출력함수.
/* temp = head; //시작은 링크리스트의 처음으로 이동.
while(temp->next != NULL){ //다음 데이터를 가르키는 포인터가 널이아닐때까지
cout<<temp->ch<<" "; //포인터로 데이터안에 문자를 출력.
temp = temp->next; //다음 데이터로 이동.
}
cout<<endl;
*/
temp = tail;
while(temp->prev !=NULL){ //데이터 정방향 출력.
temp = temp->prev;
cout<<temp->ch<<" ";
}
}
검색 소스 보기
#include"lib.h"
using std::cout;
using std::endl;
void Linkedlist::search(char schar){ //문자 검색함수. 매개변수는 케릭터형.
temp = head; //데이터의 시작부분을 가르킴.
while(temp->next != NULL){ //다음 데이터를 가르키는 포인터가 널이 아닐때까지
if((temp->ch == schar) || (temp->ch == (schar-32))){//입력한 문자가 데이터안에 문자와 같을경우(소문자 대문자 포함)
cout<<"Found"<<endl; //찾앗음을 표시
return; //함수 종료.
}
temp = temp->next; //다음 데이터로 이동.
}
cout<<"Not found"<<endl; //찾지 못할경우 출력.
}
using std::cout;
using std::endl;
void Linkedlist::search(char schar){ //문자 검색함수. 매개변수는 케릭터형.
temp = head; //데이터의 시작부분을 가르킴.
while(temp->next != NULL){ //다음 데이터를 가르키는 포인터가 널이 아닐때까지
if((temp->ch == schar) || (temp->ch == (schar-32))){//입력한 문자가 데이터안에 문자와 같을경우(소문자 대문자 포함)
cout<<"Found"<<endl; //찾앗음을 표시
return; //함수 종료.
}
temp = temp->next; //다음 데이터로 이동.
}
cout<<"Not found"<<endl; //찾지 못할경우 출력.
}

07재욱.zip
가계부.txt
댓글을 달아 주세요