728x90
๐ต์ํ ์ฐ๊ฒฐ๋ฆฌ์คํธ
๋ง์ง๋ง ๋ ธ๋๊ฐ ์ฒซ ๋ฒ์งธ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํด
ํ๋์ ๋ ธ๋์์ ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋๋ก์ ์ ๊ทผ ๊ฐ๋ฅ
> ๋จ์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ณด๋ค ์ฝ์ , ์ญ์ ๋ ์ฉ์ดํด์ง
> ์ฝ์ ,์ญ์ ์ ์ ํ ๋ ธ๋๋ฅผ ํญ์ ์์์ผํจ
ํค๋ ํฌ์ธํฐ๊ฐ ๋ง์ง๋ง ๋ ธ๋ ๊ฐ๋ฆฌํด
๐ก ์ํ ์ฐ๊ฒฐ๋ฆฌ์คํธ ์ฝ๋
#include <stdio.h>
#include <stdlib.h>
typedef int element;
typedef struct {
element data;
struct ListNode* link;
}ListNode;
void print_list(ListNode* head) {
ListNode* p;
if (head == NULL) { // ๋ง์ง๋ง ๋
ธ๋์ธ ๊ฒฝ์ฐ
return;
}
p = head->link;
do {
printf("%d->", p->data); // ์์ชฝ ๋
ธ๋๋ถํฐ ์ถ๋ ฅ
p = p->link;
} while (p != head);
printf("%d", p->data); // ๋ง์ง๋ง ๋
ธ๋ ์ถ๋ ฅ
}
// ์ํ ์ฐ๊ฒฐ๋ฆฌ์คํธ ์ฒ์์ ์ฝ์
ListNode* insert_frist(ListNode* head, element item) {
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->data = item;
if (head == NULL) { // ์๋ฌด๊ฒ๋ ์์์ ๋
head = node;
node->link = head;
}
else {
node->link = head->link;
head->link = node;
}
return head; // ๋ณ๊ฒฝ๋ ํค๋ํฌ์ธํฐ ๋ฐํ
}
// ์ํ ์ฐ๊ฒฐ๋ฆฌ์คํธ ๋ง์ง๋ง์ ์ฝ์
ListNode* insert_last(ListNode* head, element item) {
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->data = item;
if (head == NULL) { // ์๋ฌด๊ฒ๋ ์์์ ๋
head = node;
node->link = head;
}
else {
node->link = head->link;
head->link = node;
head = node;
}
return head; // ๋ณ๊ฒฝ๋ ํค๋ํฌ์ธํฐ ๋ฐํ
}
int main() {
ListNode* head = NULL;
head = insert_frist(head, 10);
head = insert_frist(head, 20);
head = insert_last(head, 30);
head = insert_frist(head, 40);
print_list(head);
return 0;
}
์ํ์ฐ๊ฒฐ๋ฆฌ์คํธ
์๋ ํ์ธ์ ๊ณ ์ํ์ ๋๋ค. ์ค๋์ ์ํ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ํ ๋ด์ฉ์ ์ ๋ฆฌํ๊ฒ ์ต๋๋ค. ์ํ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ์์ ...
blog.naver.com
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C์ธ์ด] ์ฐ๊ฒฐ๋ฆฌ์คํธ ํ Linked Queue (0) | 2023.01.12 |
---|---|
[C์ธ์ด] ์ฐ๊ฒฐ๋ฆฌ์คํธ ์คํ Linked Stack (0) | 2023.01.12 |
[C์ธ์ด] - ์ํ ๋ฑ double-ended queue (0) | 2023.01.12 |
[C์ธ์ด] - ์ํ ํ Circular Queue (0) | 2023.01.11 |
[C์ธ์ด] - ํ Queue (0) | 2023.01.11 |