Taking baby-developer steps
C언어-자료구조 / 2. 배열기반의 리스트 - 특정한 위치 원소 삭제하는 함수 본문
특정한 위치의 원소를 삭제하는 함수
Q. 특정한 위치의 원소를 삭제하는 함수는 어떻게 만들 수 있을까?
#include <stdio.h>
#define INF 10000
int arr[INF]; // 메모리 공간이 거의 무한에 가깝게 존재한다고 가정
int count = 0;
void addBack(int data){
arr[count] = data;
count++ ;
}
void addFirst(int data){
for(int i = count; i>=1; i--){
arr[i] = arr[i-1] ;
}
arr[0] = data ;
count++;
}
void show(){
for(int i = 0; i< count ; i++){
printf("%d\n", arr[i]);
}
}
지난 번 포스팅에서 위와 같이 배열기반 리스트에서 data를 배열의 뒤, 가장 앞 에 삽입하는 함수 및 배열에 담겨 있는 모든 원소를 하나씩 출력하는 함수를 정의 했었다. 이번에는 특정한 위치의 원소를 삭제하는 함수이다.
void moveAt(int index){
for(int i = index; i < count-1; i++){
arr[i] = arr[i+1] ;
}
count-- ;
}
위와 같이 만들 수 있다. arr라는 리스트 속 원소를 출력하는 함수 show에서 for문이 count에 따라 어디까지 출력할지를 결정하므로, count--를 넣는것이 핵심이었다.
'문제풀이연습 > C언어 예제풀이 연습' 카테고리의 다른 글
14. 동적 메모리 할당 - 2차원 배열 (0) | 2021.03.28 |
---|---|
C언어 자료구조 / 2. 배열기반 리스트 - 원소 추가 및 출력 함수 만들기 (0) | 2021.03.25 |
C언어 / 4. 연산자-1 (0) | 2021.03.19 |
Comments