Untitled


문자열의 단일 링크드 리스트의 노드

class StringNode {
private:
		string elem; // 원소값
	StringNode* next; // 리스트의 다음 항목
	friend class StringLinkedList; // StringLinkedList에 접근
};

문자열의 단일 링크드 리스트를 정의하는 클래스

class StringLinkedList {
public: 
	StringLinkedList(); // 빈 리스트 생성자
	~StringLinkedList(); // 소멸자
	bool empty() const; // 리스트가 비어있는지?
	const string& front() const; // 이전 원소를 얻음
	void addFront(const string& e); // 리스트의 앞에서 추가
	void removeFront(); // 앞의 리스트 항목을 삭제한다
private:
	StringNode* head; // 리스트의 헤드를 가리키는 포인터
};

StringLinkedList 클래스의 멤버함수들

StringLinkedList::StringLinkedList()
	: head(NULL){}

StringLinkedList::~StringLinkedList() { 
	while (!empty()) removeFront(); 
}

bool StringLinkedList::empty() const {
	return head == NULL;
}

const string& StringLinkedList::front() const {
	return head->elem;
}

단일 링크드 리스트의 앞에서 삽입하기

void StringLinkedList::addFront(const string& e) {
	StringNode* v = new StringNode; // 새로운 노드 생성
	v->elem = e; // 데이터를 저장
	v->next = head; // 지금 head는 v의 뒤에 있다.
	head = v; // v가 이제 head가 됨.
}

Untitled