#include<stdio.h>
#include<stdlib.h>
typedef int element;
typedef struct link{
element data;
struct link *link;
}node;
void error(char *sentance){
fprintf(stderr,"%s",sentance);
exit(1);
}
node *create_node(node * head, element val){
node *create_node;
create_node = (node *)malloc(sizeof(node));
if(create_node == NULL){
error("MEMORY ERROR");
}
create_node ->link= head;
create_node ->data = val;
return create_node;
}
void insert_node(node **phead , node *p , node *new_node){
if(*phead ==NULL){
new_node ->link = NULL;
*phead = new_node;
}
else if(p == NULL){
new_node ->link = *phead;
*phead = new_node;
}
else{
new_node ->link = p ->link;
p->link = new_node;
}
}
void display(node *head){
node *p = head;
if (p !=NULL){
printf("%d->",p->data);
display(p->link);
}
printf("\n");
}
node *serach(node *head,element val){
node *p =head;
while( p != NULL){
if( p->data == val){
return p;
}
p = p->link;
}
return p;
}
void remove_node(node **phead, node *p,node *removed){
if( p ==NULL){
*phead = removed ->link;
}
else{
p = removed -> link;
}
free(removed);
}
int main(void){
node *list1 = NULL;
insert_node(&list1,NULL,create_node(list1,10));
insert_node(&list1,NULL,create_node(list1,20));
insert_node(&list1,NULL,create_node(list1,30));
insert_node(&list1,NULL,create_node(list1,40));
insert_node(&list1,NULL,create_node(list1,50));
display(list1);
remove_node(&list1,NULL,list1);
display(list1);
return 0;
}
'이전것 > Algorithm' 카테고리의 다른 글
Orwell Dev C++ (0) | 2014.04.10 |
---|---|
단순 연결 리스트 (1) (0) | 2014.04.10 |
도전 프로그래밍 2-3 (0) | 2014.04.09 |
정적리스트 is_in_list (0) | 2014.04.07 |
정적 리스트 (0) | 2014.04.07 |