이중연결리스트 정렬 문의 드립니다.
야미
안녕하세요. 우선 소스가...typedef struct address_t(
char name[64];
char street[64];
char city[64];
char province[16];
char zip[16];
struct address_t*prev;
struct address_t*next;
} person;void dlist_insert (person *i);
void dlist_delete (person *i);
void dlist_display (person *i);int main ()
{
return 0;
}
// if (strcmp (p-name.i-name) 0) {
이것과,#include stdio.h
#include stdlib.h
#include memory.h
#include string.htypedef int element;
typedef struct DlistNode {
element data;
struct DlistNode *prev;
struct DlistNode *next;
} DlistNode;
//이중 연결 리스트를 초기화
void init(DlistNode *phead)
{
phead-prev = phead;
phead-next = phead;
}
//이중 연결 리스트의 노드를 출력
void display(DlistNode *phead)
{
DlistNode *p;
for(p=phead-next; p != phead; p = p-next){
printf(--- | %x | %d | %x | ---\n, p-prev, p-data, p-next);
}
printf(\n);
}
// 노드 new_node를 노드 before의 오른쪽에 삽입한다.
void dinsert_node(DlistNode *before, DlistNode *new_node)
{
//...
}
// 노드 removed를 삭제한다.
void dremove_node(DlistNode *phead_node, DlistNode *removed)
//...
}
// 이중 연결 리스트 테스트 프로그램
void main()
{
DlistNode head_node;
DlistNode *p[10];
int i;
init(&head_node);
for(i=0;i5;i++){
p[i] = (DlistNode *)malloc(sizeof(DlistNode));
p[i]-data = i;
// 헤드 노드의 오른쪽에 삽입
dinsert_node(&head_node, p[i]);
}
dremove_node(&head_node, p[4]);
display(&head_node);
}
이 두 소스를 이용하여banana, apple, mandarin, strowberry, watermelon 이런식으로 입력하면 정렬이 abc대로, (그 전엔 숫자가 우선순위)apple, banana, mandarin, strowberry, watermelon 이렇게 정렬되서 출력되는이중연결리스트를 구현하고자 합니다.갈피가 잡히지 않습니다. 염치불구하고, 고수님들의 도움 부탁드리겠습니다.감사합니다 !
-
후회중 2024-05-10
하이ㅎ