#include <stdio.h>
#include <stdlib.h>
struct node{
struct node* prev;
int data;
struct node* next;
};
struct node* create_node(int data);
void append_node(struct node *head, int data);
void print_all(struct node *head);
void print_all_reverse (struct node *head);
int main(void) {
int i;
struct node* n1 = create_node(1);
for(i=2;i<=10;i++){
append_node(n1, i);
}
print_all(n1);
print_all_reverse(n1);
}
struct node* create_node(int data){
struct node* new_node = (struct node*)malloc(sizeof(struct node));
new_node->prev = NULL;
new_node->next = NULL;
new_node->data = data;
return new_node;
}
void append_node(struct node *head, int data){
struct node* new_node = create_node(data);
struct node* temp = head;
while(1){
if (temp->next == NULL){
break;
}
temp = temp->next;
}
temp->next = new_node;
new_node->prev = temp;
}
void print_all(struct node *head){
struct node* temp = head;
while(1){
printf("%d\n",temp->data);
if (temp->next == NULL){
break;
}
temp = temp->next;
}
}
void print_all_reverse (struct node *head){
struct node* temp = head;
struct node* tmp = head;
while (temp->next!=NULL){
temp = temp->next;
}
while(1){
printf("%d\n",temp->data);
if(temp->prev == tmp){
printf("%d\n",temp->prev->data);
break;
}
temp = temp->prev;
}
}
댓글
0개댓글 쓰기
댓글을 작성하려면 로그인하세요.