-
자료구조: Dynamic Linear List 구현하기 (feat. c++)알고리즘/자료구조 2021. 4. 16. 13:43
Characteristic:
- MyList class is a List array class which can size dynamically
Operations:
- insert
- first
- next
- getSize
#include<iostream> #include<assert.h> using namespace std; typedef char ListElementType; class MyList { public: MyList(int lSize); void insert(const ListElementType& elem); bool first(ListElementType& elem); bool next(ListElementType& elem); int getSize(); private: int listSize; ListElementType* listArray; int numberOfElements; int currentPosition; }; MyList::MyList(int lSize) { assert(lSize >= 0); listSize = lSize; listArray = new ListElementType[listSize]; assert(listArray); numberOfElements = 0; currentPosition = -1; } void MyList::insert(const ListElementType& elem) { assert(numberOfElements < listSize); listArray[numberOfElements] = elem; numberOfElements++; } bool MyList::first(ListElementType& elem) { if (numberOfElements == 0) return false; else { currentPosition = 0; elem = listArray[currentPosition]; return true; } } bool MyList::next(ListElementType& elem) { assert(currentPosition>=0); if (currentPosition >= numberOfElements-1) return false; else { currentPosition++; elem = listArray[currentPosition]; return true; } } int MyList::getSize() { return listSize; } int main() { MyList l(100); char tmp; cin >> tmp; while (tmp != 'q') { l.insert(tmp); cin >> tmp; } bool notEmpty = l.first(tmp); while (notEmpty) { cout << tmp << endl; notEmpty = l.next(tmp); } return 0; }
반응형'알고리즘 > 자료구조' 카테고리의 다른 글
자료구조: Dummy Inorder Linked List 구현하기 (feat. c++) (0) 2021.04.16 자료구조: Inorder Linked List 구현하기 (feat. c++) (0) 2021.04.16 자료구조: Linked List 구현하기 (feat. c++) (0) 2021.04.16 자료구조: Linked List로 Stack 구현하기 (feat. c++) (1) 2021.04.16 자료구조: Array로 Stack 구현하기 (feat. c++) (0) 2021.04.15