맨 아래 다섯개 함수에요
자바는 이정도는 아니었는데 c언어가 훨씬 어렵네요.. 수업시간에 너무 열심히 안해서그런가
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct NODE
{
struct NODE *fwd;
struct NODE *bwd;
int value;
} Node;
void traverseForward(Node root)
{
Node *q = root.fwd;
while (q)
{
printf("%d ", q->value);
q = q->fwd;
}
}
void initializeList(Node *root)
{
root->fwd = NULL;
root->bwd = NULL;
root->value = 0;
}
int insertFirst(Node *root, int val)
{
Node *node = (Node *)malloc(sizeof(Node));
if (node == NULL) return 0;
node->value = val;
/* For a previously empty list */
if (root->fwd == NULL)
{
root->fwd = node;
root->bwd = node;
node->fwd = NULL;
node->bwd = NULL;
}
/* For a list with at least one node */
else
{
/* previous first node now new node's successor */
root->fwd->bwd = node;
node->fwd = root->fwd;
/* no predecessor to the new first node */
node->bwd = NULL;
/* root points to this new first */
root->fwd = node;
}
return 1;
}
-----Given------
void traverseBackward (Node root)
int insertLast (Node *root, int val)
void deleteFirst (Node *root)
void deleteLast (Node *root)
void deleteAll (Node *root)
연결리스트냐? ㅅㅂ 설명을 해줘야지 코드만 던져주고 에휴.. 얘도 질문하는 태도가 글러먹었어
Doubly Linked List Functions 이 제목이에요
아하 이중연결리스트구나
야 insertFirst 함수는 주어져 있는데 last를 못짜는건 니 머리가 문제가 있는거 아니냐?
insertlast 는 first 복붙이고 traverse 도 복붙 딜리트 만 짜면되네
그게 링크 할때부터 수업을 안들었더니 너무 헷갈려요
구조체 안에 뒤에 와야할 노드의 정보를 넣는거
이건 앞뒤 노드 정보를 가진거
기달려봐 짠다음 설명해주께
링크드리스트로 된 양방향 queue 구현한다고 생각하면됨
넵 말씀해주신거대로 생각해보고있겠습니다.