티스토리 뷰
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *next;
struct node *prev;
};
struct node* head = 0;
void addToDLL(int n)
{
struct node* cur;
cur = (struct node*)malloc(sizeof(struct node));
cur->data = n;
cur->next = 0;
cur->prev = 0;
if (head == 0) {
head = cur;
return;
}
{ //끝을 찾는다
struct node* temp = head;
while (temp->next != 0) {
temp = temp->next;
}
temp->next = cur;
cur->prev = temp;
}
}
void findFB(int n)
{
struct node* cur = head;
if (head == 0) {
printf("-999");
return;
}
while (1) { //검색
if (cur == 0) {
if (head == 0) { //검색을못했을땐 break dll이없을땐 return
return;
}
printf("-999");
return;
}
if (cur->data == n) {
break;
}
cur = cur->next;
}
if (cur->prev == 0) {
printf("-999 ");
}
else {
printf("%d ", cur->prev->data);
}
if (cur->next == 0) {
printf("-999 ");
}
else {
printf("%d ", cur->next->data);
}
return;
}
void showDLL()
{
struct node* cur = head;
if (head == 0) {
return;
}
while (cur != 0) {
printf("%d ", cur->data);
cur = cur->next;
}
return;
}
int main(void)
{
int num, data1, data2, i;
scanf("%d", &num);
for (i = 0; i < num; i++) {
scanf("%d", &data1);
addToDLL(data1);
}
scanf("%d", &data1);
findFB(data1);
}
'IT > 자료 구조' 카테고리의 다른 글
[데이터 구조] DLL 응용문제/데이터 빈도 출력 (0) | 2020.04.09 |
---|---|
[데이터 구조]DLL 응용문제/데이터검색/알고리즘 (0) | 2020.04.08 |
[데이터구조] DLL에 데이터 삽입/초간단 정리!! (0) | 2020.04.06 |
[데이터구조] DLL에서 데이터 삭제/ 초간단 정리!! (0) | 2020.04.05 |
[데이터구조] DLL생성하기/초간단 정리! (0) | 2020.04.03 |
댓글