c++ 자료구조를 (코딩)을 도와주세요....
조회수 519회
C++ 책에서 코드를 보고 따라쳤습니다. 하지만 이 코드에 객체들을 add와 remove 하고 싶습니다. 어떻게 하면 될까요? 정말 초보입니다..ㅠㅠ
#include<cstdlib>
#include<iostream>
using namespace std;
class StringNode {
private:
string elem;
StringNode* next;
friend class 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()
: 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;
}
void StringLinkedList::removeFront() {
StringNode* old = head;
head = old->next;
delete old;
}
int main() {
StringNode A();
StringLinkedList B();
}
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
아래 코드 참고하세요.
- 코드
#include<cstdlib> #include<iostream> using namespace std; class StringNode { private: string elem; StringNode* next; friend class 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() : 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; } void StringLinkedList::removeFront() { StringNode* old = head; head = old->next; delete old; } int main() { StringLinkedList list; list.addFront("hello"); list.addFront("hi"); list.addFront("안녕하세요"); list.addFront("가즈아"); list.addFront("123"); while (!list.empty()) { cout << list.front() << '\n'; list.removeFront(); } return 0; }
- 결과
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력