#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct list *linked_list;
struct list{
int info;
linked_list next;
};
void print(linked_list head);
linked_list insert(void);
linked_list erase(linked_list head);
linked_list insert(void)
{
linked_list head, tail, temp;
char c;
c=getche();
temp = (linked_list)malloc(sizeof(struct list));
temp->next = NULL;
temp->info = c;
head = tail = temp;
while(c != '\r')
{
c=getche();
temp = (linked_list)malloc(sizeof(struct list));
temp->next=NULL;
if(c != '\r')
{
tail->next = temp;
tail=temp;
tail->info = c;
}
}
return(head);
}
linked_list erase(linked_list head)
{
linked_list start, ptr, temp;
temp = start = head;
while(start != NULL)
{
ptr = start->next;
while(ptr != NULL)
{
if(start->info == ptr->info)
{
temp->next = ptr->next;
free(ptr);
ptr = temp->next;
}
else
{
ptr = ptr->next;
temp = temp->next;
}
}
start = start->next;
temp = start;
}
return(head);
}
void print(linked_list head)
{
while(head != NULL)
{
printf("%c", head->info);
head = head->next;
}
}
void main()
{
int i=0;
linked_list header;
printf("\n\n**********start***************\n");
while( (i++) != 5 )
{
printf("\n %2d List : ", i);
header = insert();
printf("\n");
header = erase(header);
printf(" result : ");
print(header);
}
printf("\n\n******** END *********\n");
}
'프로그래머의 길 > 알고리즘' 카테고리의 다른 글
이중 연결 리스트 (0) | 2007.03.28 |
---|---|
연결 리스트 관련 문자열 포함 프로그램 (0) | 2007.03.28 |
연결 리스트 (0) | 2007.03.27 |
heap 정렬 (0) | 2007.03.13 |
선택 정렬 (Selection Sort) (0) | 2007.02.28 |