반응형
단일 연결 리스트를 이용하여 키보드로 입력받은 영문자를 저장하고 특정 영문자를 삭제하는 리스트 ADT를 구현하시오.
◦ 다음 연산을 지원한다.
- addLastNode(list, e) : 원소 e를 추가한다.
- searchRemove(list, e) : 특정 원소 e를 리스트에서 삭제한다.
- print(list) : list의 모든 원소를 공백없이 출력한다.
※ 특정 원소 e가 없다면 화면에 에러 메시지 "not find" 출력하고, 해당 연산을 무시한다.
◦ 입력에 대한 설명 (아래 입출력 예시 참조)
- 각 연산의 내용이 한 줄에 한 개씩 입력되고, 한 개의 줄에는 연산의 종류, 원소 순서로 입력된다.
- 연산의 종류: 연산 이름의 맨 앞 영문자가 대문자 A, D, P로 주어진다.
- 원소: 영문자(대문자, 소문자 모두 가능)
- 저장 순서 : 삽입 노드는 마지막 노드로 저장된다. 예를 들어 S, T, C 순으로 입력시 저장 순서는 S → T → C
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
|
typedef char element;
typedef struct ListNode{
char data;
struct ListNode* link;
} ListNode;
typedef struct{
ListNode* head;
} linkedList_h;
linkedList_h* createLinkedList_h(void)
{
linkedList_h* L;
L = (linkedList_h*)malloc(sizeof(linkedList_h));
L->head = NULL;
return L;
}
//영문자를 삽입하는 함수
void addLastNode(linkedList_h* L, element x)
{
listNode *newNode;
listNode *p;
newNode = (listNode*)malloc(sizeof(listNode));
strcpy(newNode->data, x);
newNode->link = NULL;
if (L->head == NULL) {
L->head = newNode;
return;
}
p = L->head;
while (p->link != NULL) {
p = p->link;
}
p->link = newNode;
}
void printList(linkedList_h* L)
{
ListNode* p;
p= L->head;
while(p != NULL){
printf("%c", p->data);
p = p->link;
}
printf("\n");
}
void removeNode(ListNode* prev, ListNode* p)
{
if(p != NULL){
prev->link = p->link;
free(p);
}
}
// 특정 영문자를 리스트에서 삭제
void searchRemove(linkedList_h* L, element x)
{
}
int main(){
linkedList_h* L;
L = createLinkedList_h();
// 아래의 입.출력 연산을 수정한 후 프로그램 구현해야 함.
addLastNode(L, 'S'); addLastNode(L, 't');
addLastNode(L, 'a'); addLastNode(L, 'r');
printList(L);
searchRemove(L, 'a');
printList(L);
searchRemove(L, 's');
printList(L);
}
|
cs |
반응형
'공부' 카테고리의 다른 글
혼자 논문 쉽게 쓰는 방법 (Q4 랭킹 노리기, SJR 랭킹 낮은 순, 저널 선택 꿀팁 등) (2) | 2023.10.01 |
---|---|
반복문을 사용하지 않고 재귀호출을 사용하여 문자열을 뒤집어 출력하는 C 프로그램 작성 (0) | 2022.04.29 |
[코세라 9주년 이벤트] 인공지능 수업이 무료! (0) | 2021.04.16 |
댓글