바킹독님의 실전알고리즘배우기 4강듣고 요약

바킹독의 실전 알고리즘 4강 링크

image
image

연결리스트의 성질

image

연결리스트의 종류

image

배열 vs 연결리스트

image

연결리스트의 구현

나중에 추가

야매 연결리스트

image

#include <bits/stdc++.h>
using namespace std;

const int MX = 1000005;
int dat[MX], pre[MX], nxt[MX];
int unused = 1;

void insert(int addr, int num){
  dat[unused] = num;
  pre[unused] = addr;
  nxt[unused] = nxt[addr];
  if(nxt[addr] != -1) pre[nxt[addr]] = unused;
  nxt[addr] = unused;
  unused++;
}

void erase(int addr){
  nxt[pre[addr]] = nxt[addr];
  if(nxt[addr] != -1) pre[nxt[addr]] = pre[addr];
}

int main(void) {
  fill(pre, pre+MX, -1);
  fill(nxt, nxt+MX, -1);
  //insert_test();
  //erase_test();
}

0번 노드는 시작점을 알리는 dummy node이다.
실무에선 쓸 수 없고 코테에서만 가능한 방식

STL list

image
STL의 list는 이중연결리스트이다.
STL list 관련 자세한 포스팅

연습문제

BOJ 1406번

손코딩문제 1

image

손코딩문제 2

image

손코딩문제 3

image