#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
블로그 이미지

잉비니

,