일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 윈도우즈
- WebProgramming
- OOP
- Call-by-reference
- function
- meta
- 악성코드
- array
- query
- API
- Sort
- c++
- 노드
- CSS
- request
- jsp
- CLASS
- HTML
- 투자
- windows
- Kafka
- 포인터
- beans
- C
- 자료구조
- System
- JavaScript
- UTF-8
- java
- algorithm
- Today
- Total
hahahia
간단한 리스트 구현(단방향) 본문
사실 이번학기 자료구조를 수강하는데 첫시간부터 리스트 구현을 했어요...ㅎㅎ
제 블로그 보시면 이전에 더블 링크드 리스트 구현을 했었는데 기억도 가물가물하고
복습할 겸 다시 포스팅해봐요 ㅎㅎ
간단한 기능부터 시작해서 추가 기능을 구현하는 식으로 포스팅 할께요.
일단 음... 단방향 리스트부터 ㅋㅋ
노드 추가 및 삭제(오직 head 부분에서만) 그리고 현재 리스트 출력, 리스트 길이 출력 기능
/* 단방향 리스트 구현
made by hahahia
*/
#include <iostream>
using namespace std;
class Node{ // node class
public:
int value;
Node* Next;
Node(int input){
value = input;
}
};
class List{ // list class
public:
List();
~List();
bool empty() const;
const int& front() const;
void addFront(int val);
void deleteFront();
void PrintList();
int ListLength();
private:
int count;
Node* head;
};
List::List() : head(NULL), count(0) {} // constructor
List::~List(){ while(!empty()) deleteFront(); }
bool List::empty() const { return head==NULL; }
const int& List::front() const { return head->value; } // return first value
void List::addFront(int val){ // only front
Node* NewNode = new Node(val);
NewNode->Next = head;
head = NewNode;
count++;
cout << "input complete" << endl;
}
void List::deleteFront(){ // only front
Node* NowNode = head;
head = NowNode->Next;
delete NowNode;
count--;
cout << "delete complete" << endl;
}
int List::ListLength() { return count; } // check length
void List::PrintList(){ // print list
Node* NowNode = head;
for(int i=0; i<count; i++){
cout << i+1 << " Node Data : " << NowNode->value << endl;
NowNode = NowNode->Next;
}
}
int main(){
List list1;
list1.addFront(3);
list1.addFront(4);
list1.addFront(7);
list1.deleteFront(); // delete 7
list1.addFront(5);
list1.PrintList();
return 0;
}
출력화면
구현해놓고 나니깐 왠지 스택 구조가 된거같아요 ㅋㅋ
'Data Structure' 카테고리의 다른 글
Binary Trees (0) | 2012.11.07 |
---|---|
CircularArray(환형 배열, queue) (0) | 2012.10.24 |
Linked List(링크드 리스트) (0) | 2012.03.24 |
큐(Queue) (0) | 2012.03.02 |
스택(stack) (0) | 2012.02.19 |