이중으로 연결해서 정순 역순 출력하려는데 역순 출력이 안되네요<br>제가 잘못짠 부분이 어디인가요? 잘못한데 설명즘 부탁드려요<br><br>#include<stdio.h><br>#include<stdlib.h><br>#include<string.h><br><br><br>typedef struct booklist<br>{<br> char books[30]; // 책 제목<br> char press[30]; // 출판사 <br> int price; // 판매 가격을 저장할 변수 <br> struct booklist *next;<br> struct booklist *prev;<br><br>} tagBooks;<br><br>void Input_List(tagBooks **Ps);<br>void Display_List(tagBooks **Ps);<br>void Remove(tagBooks **Ps);<br>void my_free(tagBooks **Ps);<br><br>int main()<br>{<br> tagBooks* pStart = NULL;<br> int num = 0;<br><br> while (1)<br> {<br> printf(" 1. 입력, 2. 출력, 3.삭제, 4.종료 \n");<br> scanf("%d", &num);<br> switch (num)<br> {<br> case 1:<br> Input_List(&pStart); <br> break;<br> case 2:<br> Display_List(&pStart); <br> break;<br> case 3:<br> Remove(&pStart);<br> break;<br> case 4:<br> my_free(&pStart); <br> printf("프로그램 종료\n");<br> exit(1);<br> }<br> }<br> return 0;<br>}<br>void Input_List(tagBooks **Ps)<br>{<br> <br> tagBooks *Pnew = (tagBooks*)malloc(sizeof(tagBooks));<br> tagBooks *tmp;<br><br> Pnew->next = NULL;<br> Pnew->prev = NULL;<br><br> printf("책제목 : ");<br> scanf("%s", Pnew->books);<br> printf("출판사 : ");<br> scanf("%s", Pnew->press);<br> printf("판매가격 : ");<br> scanf("%d", &Pnew->price);<br> printf("\n");<br><br> <br><br> if (*Ps == NULL)<br> {<br> *Ps = Pnew;<br> Pnew = Pnew->next;<br> }<br> else<br> {<br> tmp = *Ps;<br> <br> while (tmp->next != NULL)<br> {<br> <br> tmp = tmp->next;<br> <br> }<br> tmp->next = Pnew;<br> Pnew->prev = tmp;<br> }<br>}<br>void Display_List(tagBooks **Ps)<br>{<br> tagBooks *tmp;<br> tmp = *Ps;<br> tagBooks *p;<br><br> while (tmp != NULL)<br> {<br> printf("책 제목 : %s 출판사 : %s 출판 가격 : %d\n", tmp->books, tmp->press, tmp->price);<br><br> p = tmp;<br> tmp = tmp->next;<br> }<br><br><br> while (p != NULL)<br> {<br> printf("책 제목 : %s 출판사 : %s 출판 가격 : %d\n", tmp->books, tmp->press, tmp->price);<br><br> p = p->prev;<br> }<br><br>}<br>void Remove(tagBooks **Ps)<br>{<br> tagBooks *Pnew = *Ps;<br> tagBooks *tmp = *Ps;<br> char re[20];<br><br> printf("삭제할 책이름을 써주세요. ");<br> scanf("%s", re);<br><br> do<br> {<br> printf("%s %s\n", re, Pnew->books);<br><br> if (!strcmp(re, Pnew->books))<br> {<br><br><br> if (Pnew == *Ps) <br> {<br> tmp = Pnew->next;<br> }<br> else if (Pnew->next == NULL)<br> {<br><br><br> }<br> else <br> {<br> printf("in\n");<br> tmp->next = Pnew->next;<br><br><br> }<br> free(Pnew);<br><br> }<br><br> if (!strcmp(re, Pnew->books)) <br> {<br> Pnew = Pnew->next;<br> }<br><br> } while (!strcmp(re, Pnew->books));<br><br>}<br>void my_free(tagBooks **Ps)<br>{<br><br> tagBooks *tmp;<br> tagBooks *val;<br><br> tmp = *Ps;<br> val = *Ps;<br><br><br> while (tmp != NULL)<br> {<br> val = tmp->next;<br> free(tmp);<br><br> tmp = val;<br> }<br><br>}