본문 바로가기

프로그래밍/자료구조

배열 순차리스트

#include <stdio.h>
#include <stdlib.h>
#define SIZE 10

typedef struct {
	int list[SIZE];
	int numOfData;
}ArrayList;

ArrayList* createList() {
	ArrayList* L = (ArrayList*)malloc(sizeof(ArrayList));
	for (int i = 0; i < SIZE; i++) {
		L->list[i] = 0;
	}
	L->numOfData = 0;
	return L;
}

int insertData(ArrayList*L,int index, int data) {
	if (index > L->numOfData) {
		printf("순차적으로 넣어주세요\n");
		return 0;
	}
	for (int i = L->numOfData; i >index; i--) {
		L->list[i] = L->list[i - 1];
	}
	L->list[index] = data;
	L->numOfData++;
	return 1;
}

int removeData(ArrayList* L, int index) {
	for (int i = index; i < L->numOfData; i++) {
		L->list[i] = L->list[i + 1];
	}
	L->numOfData--;
	return 1;
}

void printList(ArrayList* L) {
	for (int i = 0; i < L->numOfData; i++) {
		printf("%d\t", L->list[i]);
	}
	printf("데이터의 개수:%d\n", L->numOfData);
}

int main() {
	ArrayList* L;
	L = createList();
	printList(L);

	insertData(L, 0, 1);
	printList(L);

	insertData(L, 0, 2);
	printList(L);

	insertData(L, 1, 3);
	printList(L);

	insertData(L, 1, 4);
	printList(L);

	removeData(L, 0);
	printList(L);

	removeData(L, 1);
	printList(L);
	return 0;
}

'프로그래밍 > 자료구조' 카테고리의 다른 글

연결리트스 이진트리  (0) 2019.11.07
연결리스트  (0) 2019.11.04
연결리스트 큐(Queue) 구현  (0) 2019.10.18
배열을 이용한 큐(Queue)  (0) 2019.10.17
스택을 이용해 괄호 검사, 문자열 역순 출력  (0) 2019.10.14