티스토리 뷰
배열리스트(ArrayList)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <stdio.h> #define MAX_LIST_SIZE 100 typedef int element; typedef struct ArrayList { element list[MAX_LIST_SIZE]; int length; }; //리스트의 모든 요소 표시 void display(ArrayList *list); //길이 반확 int getLength(ArrayList *list); //pos위치의 요소 반환 int getEntry(ArrayList *list, int position); //item 있는지 검사 int isInList(ArrayList *list, element item); //pos위치의 요소를 item으로 변환 void replace(ArrayList *list, int position, element item); //pos위치의 요소 삭제 후 삭제한 item 반환 element deletePos(ArrayList *list, int position); //모든 요소 삭제 void clear(ArrayList *list); //처음에 추가 void addFirst(ArrayList *list, element item); //마지막에 추가 void addLast(ArrayList *list, element item); //pos에 추가 void add(ArrayList *list, int position, element item); int isFull(ArrayList *list); int isEmpty(ArrayList *list); void init(ArrayList *list); | cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "ArrayList.h"
void init(ArrayList *list)
{
list->length = 0;
}
int isEmpty(ArrayList *list)
{
return list->length == 0;
}
int isFull(ArrayList *list)
{
return list->length == MAX_LIST_SIZE;
}
void add(ArrayList *list, int position, element item)
{
if (!isFull(list) && position >= 0 && position <= (list->length))
{
int i;
//맨뒤부터 position까지 한칸씩 뒤로 이동
for (int i = (list->length - 1); i >= position; i--)
list->list[i + 1] = list->list[i];
list->list[position] = item;
list->length++;
}
}
void addLast(ArrayList *list, element item)
{
if (!isFull(list))
{
list->list[list->length] = item;
list->length++;
}
}
void addFirst(ArrayList *list, element item)
{
if (!isFull(list))
{
for (int i = (list->length - 1); i >= 0; i--)
list->list[i + 1] = list->list[i];
list->list[0] = item;
list->length++;
}
}
void clear(ArrayList *list)
{
for (int i = 0; i < list->length; i++)
list->list[i] = 0;
list->length = 0;
}
element deletePos(ArrayList *list, int position)
{
int i;
element item;
if (position < 0 || position >= list->length)
{
printf("Position error!\n");
return 0;
}
item = list->list[position];
for (int i = position; i < (list->length); i++)
list->list[i] = list->list[i + 1];
list->length--;
return item;
}
void replace(ArrayList *list, int position, element item)
{
list->list[position] = item;
}
int isInList(ArrayList *list, element item)
{
for (int i = 0; i < list->length; i++)
{
if (list->list[i] == item)
return 1;
}
return 0;
}
int getEntry(ArrayList *list, int position)
{
return list->list[position];
}
int getLength(ArrayList *list)
{
return list->length;
}
void display(ArrayList *list)
{
for (int i = 0; i < list->length; i++)
printf("%d ", list->list[i]);
printf("\n");
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include "ArrayList.h" ArrayList list; int num = 0; int main() { init(&list); add(&list, 0, 100); add(&list, 1, 90); add(&list, 2, 80); add(&list, 3, 50); add(&list, 4, 60); add(&list, 5, 40); display(&list); printf("길이: %d\n",getLength(&list)); getEntry(&list, 1); printf("1번위치: %d\n", getEntry(&list, 1)); printf("4존재? %d\n",isInList(&list, 4)); printf("40존재? %d\n", isInList(&list, 40)); replace(&list, 3, 70); replace(&list, 5, 50); display(&list); deletePos(&list, 3); display(&list); printf("길이: %d\n", getLength(&list)); addFirst(&list, 1); addLast(&list, 1); display(&list); printf("길이: %d\n", getLength(&list)); clear(&list); display(&list); printf("길이: %d\n", getLength(&list)); printf("Full? %d\n",isFull(&list)); printf("Empty? %d\n",isEmpty(&list)); clear(&list); return 0; } | cs |
'STUDY > 자료구조(Data Structures)' 카테고리의 다른 글
자료구조 •String 숫자를 Int로 변환(스트링->정수 변환)• (0) | 2017.12.30 |
---|---|
자료구조 •트리(Tree) -구조체 배열• (0) | 2017.12.29 |
자료구조 •트리(Tree) 개념• (0) | 2017.12.27 |
자료구조 •연결리스트-2(LinkedList)• (0) | 2017.12.27 |
자료구조 •연결리스트(LinkedList)• (0) | 2017.12.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- LinkedList
- 연결리스트
- stringint
- 시험준비
- Tree
- 트리
- DataStructure
- string숫자
- atoi()
- string int로 변환
- datastructures
- string개념
- 네트워크
- int변환
- 패턴 매칭
- 겨울방학
- 다이어리
- 계획
- 자료구조
- string변환
- Algorithms
- 컴퓨터네트워크
- c언어
- open address
- 보이어-무어
- 알고리즘개념
- 해싱 충돌
- string
- 알고리즘
- kmp 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함