hahahia

간단한 리스트 구현(단방향) 본문

Data Structure

간단한 리스트 구현(단방향)

hahahia 2012. 9. 8. 01:09

사실 이번학기 자료구조를 수강하는데 첫시간부터 리스트 구현을 했어요...ㅎㅎ

제 블로그 보시면 이전에 더블 링크드 리스트 구현을 했었는데 기억도 가물가물하고

복습할 겸 다시 포스팅해봐요 ㅎㅎ

간단한 기능부터 시작해서 추가 기능을 구현하는 식으로 포스팅 할께요.


일단 음... 단방향 리스트부터 ㅋㅋ

노드 추가 및 삭제(오직 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
Comments