C++
-
배열 선형 큐@ 16. 1 ~ 17. 1/자료구조 2013. 4. 15. 11:45
배열을 이용한 선형큐 Front와 Rear의 적절한 위치 변환을 통해 구현.. 단점 : 디큐를 이용하여 삭제 후 할당공간이 있음에도 불구하고 없다고 나옴..그래서 원형큐를 사용함.. 일단 배열로 구성한 선형큐부터.. #include #include using namespace std; class ArrayQueueNode { public: char element; ArrayQueueNode() { element=NULL; } ArrayQueueNode(char c) { element=c; } }; class ArrayQueue { public: int MaxCount; int CurrentCount; int Front; int Rear; ArrayQueueNode* pElement; public: Arr..
-
리스트 스택을 이용한 미로찾기(구상)@ 16. 1 ~ 17. 1/자료구조 2013. 4. 8. 23:10
리스트 스택을 이용한 미로찾기 들어가기전 1. 찾는 방향은 4방향(위, 오른쪽, 아래, 왼쪽)을 탐색하여 찾는다. 2. 일일이 방향하나씩 확인 후 진입하고 진입하다가 막혔을 시 pop연산을 통해 하나씩 복귀하며 다른방향이 있는곳까지 나온다. 그 후 다른방향으로 진입.. 3. 그리고 아래처럼 3개의 클래스가 필요하다. 스택 변수 맵위치(클래스) 함수 생성자(초기화) 맵위치 반환 맵위치 입력 리스트 스택 변수 현재수량표시 탑스택을 가르키는 스택포인터 함수 생성자 소멸자 푸쉬 연산 팝 연산 맵위치 변수 x좌표, y좌표, 방향값 함수 미로찾는함수 출력함수 이정도가 필요할 것으로 예상되는데..물론 책보고 이해는 했다. 스스로의 구현이 필요한 시점.. 고민해보고 낼 막장구현을 해보도록..
-
리스트 스택(Stack)@ 16. 1 ~ 17. 1/자료구조 2013. 4. 7. 21:25
리스트를 이용한 스택 구현 항상 TopStack을 가르키는 포인터를 지정함으로써 스택처럼 구현.. Push, Pop, Show 만 구현한 까닭에 일부 메모리 누수있음..?! StackNode.cpp #include"StackNode.h" int StackNode::GetData() { return data; } void StackNode::InputData(int num) { data=num; } StackNode.h #ifndef __STACKNODE_H__ #define __STACKNODE_H__ #include using namespace std; class StackNode { private: int data; public: StackNode* plink; public: StackNode() {..
-
스택(Stack)@ 16. 1 ~ 17. 1/자료구조 2013. 4. 5. 23:27
스택을 구현해봤다. PUSH와 POP만 우선해봤는데... 기타 기능들은 ..그냥 넘어가는.. 리스트보단 쉽다..자료구조는 누군가 그러더라.. 외우는게 아니고 이해하고 구현해볼 수 있음 된다고.. 이해가 먼저고 구현이 가능한것은 책보고 해도되니.... 그런가? #include #include #include using namespace std; class ArrayStackNode { private: int data; public: void Input(int num) { data=num; } int GetData() { return data; } }; class ArrayStack { public: int MaxCount; int CurrentCount; ArrayStackNode* node; public..
-
이중 링크드 리스트 구현@ 16. 1 ~ 17. 1/자료구조 2013. 3. 31. 16:44
이중 링크드 리스트 구현.. 삽입 삭제, 출력만 우선 구현.... #include #include #include using namespace std; class DoubleNode { private: int data; public: DoubleNode* pRlink; DoubleNode* pLlink; public: int GetData() { return data; } void InputData(int num) { data=num; } }; class DoubleList { public: int CurrentCount; DoubleNode HeadNode; public: DoubleList() { CurrentCount=0; HeadNode.pLlink=&HeadNode; HeadNode.pRlink..
-
vector<STL> 사용하기(2)@ 16. 1 ~ 17. 1/STL 2013. 3. 18. 23:18
저장방식은 배열과 비슷하다. 그러나 차이점이라고는 크기의 조절이 가능하고 앞 뒤의 추가 삭제가 자유롭다는 것이다. vector 사용방법 1. 헤더파일 #include를 포함한다. 2. vector 변수이름 vector vector1; vector *vector2 = new vecotr; 자세한 멤버는 따로 확인이 필요하고..자주 사용하는 것을 알아보겠음. push_back() : 마지막 위치에 데이터 추가 vector vector1; vector1.push_back(1); pop_back() : 마지막 위치의 데이터 삭제 bector1.pop_back(); begin() : 첫 번째 위치반복자 반환 vector::iterator iterBegin = vector1.begin(); front() : 첫 번..
-
vector<STL> 사용하기@ 16. 1 ~ 17. 1/STL 2013. 3. 10. 21:33
#include를 포함하고.. vector 변수명; 으로 사용을 한다. 변수명.push_back() 함수를 이용하면 자동으로 인덱스가 붙으면서 vector에 저장된다. 예) vector vs; vs.push_back(5); A라는 클래스가 있다면, 생성자로 int 매개변수 한개를 받는다면.. vector vs; vs.push_back(A(10)); vs.push_back(A(20)); 이런식으로.. size()함수는 현재 vector에 저장된 것의 개수를 리턴한다. vs[1]은 vector에 저장된 3번째의 값을 나타낸다. v.insert(iterator 위치, 저장할 값)을 이용하여 원하는 위치에 값을 저장한다. vs.insert(vs.begin()+1,5)은 vector 시작위치부터 1번째에 5를 저..