linked list_head뒤에 데이터 입력

Jaden·2023년 3월 24일
0

시작 부분에 데이터 입력

head의 바로 뒤에 데이터를 입력한다.

#include <stdio.h>
#include <stdlib.h>

struct Node{ 
	int data;
    next Node_* ptr;
}

typedef struct Node_ Node; //struct Node_를 Node라고 쓰겠다.

Node* head;

int main(){
	head = NULL; 
}	

// null이므로 값 0을 가짐



int main(){
	head = NULL; 
    
    int x;
    scanf("%d", &x); //x 입력받기
    insert(x); 
}

void insert(int x){
	Node* tmp = (Node*)malloc(sizeOf(Node));
    tmp -> data = x;
    tmp -> ptr = head;
}


int main(){
	head = NULL; 
    int x;
    scanf("%d", &x); //x == 5
    insert(x); 
}
void insert(int x){
	Node* tmp = (Node*)malloc(sizeOf(Node));
    tmp -> data = x; 
    tmp -> ptr = head;

    head = tmp;
}

함수를 빠져나가면, stack의 tmp가 날라가며 아래와 같은 형태가 된다.






insert를 여러번 한다.
ex) insert(x) 3회 호출
입력 순서는 다음과 같다. [1, 2, 3]

int main(){
	head = NULL; 
    int x, i;
    for(i = 0; i< 3; i++){ //3회 insert
    	scanf("%d", &x); 
	    insert(x);
   	}
}
void insert(int x){
	Node* tmp = (Node*)malloc(sizeOf(Node));
    tmp -> data = x; 
    tmp -> ptr = head;
    head = tmp;
}
  • i == 0


  • i == 1

  • i == 2

최종

  • 1, 2, 3의 순서로 데이터를 입력함
  • 입력된 데이터는 linked list의 시작 부분에 들어감
  • 따라서 head -> 3 -> 2-> 1 -> null의 순서로 이루어짐

0개의 댓글