자료구조

[자료구조/선형자료구조]링크드리스트(연결리스트),스택

심재철 2017. 8. 27. 16:25

연결 리스트를 써야하는 상황 -> 몇개의 원소를 갖는지 미리 정하지 못하는 상황


장점 : 쉽고 빠른 추가/삽입/삭제

단점 :  원소의 참조(탐색)가 비효율적, 포인터 때문에 4byte추가 공간 필요



스택


선입 후출(먼저 들어가면 나중에 나오는) 구조


1. 배열 기반 스택

typedef int ElementType;


typedef struct tagNode

{

ElementType Data;

}Node;


typedef struct tagArrayStack //배열 기반 스택

{

int Capacity;

int Top;

Node* Nodes;

}ArrayStack;

스택을 배열로 구현 할 경우 구현이 상대적으로 간편하지만, 대신에 크기를 미리 정해야함.

연결리스트로 스택을 구현 할 경우 구현은 상대적으로 손이 더 가지만, 크기를 미리 정하지 않아도됨. 둘의 장단점이 반대임


2. 연결리스트 기반 스택



맨아래가 시작지점이고 맨위에가 끝지점임. 선입후출

1typedef struct LinkedListStack
2{                                                       
3    Node* List;
4    Node* Top;
5 
6} LinkedListStack;