#include <stdio.h>
#include <malloc.h>
typedef struct _dnode{
int name;
struct _dnode *pre_link;
struct _dnode *nxt_link;
}dnode;
dnode *head;
dnode *tail;
void init();
void ordered_insert(int name);
void nexted_insert(int std_name, int nxt_name);
void print_dnode();
void del(int name);
void modify(int std_name,int mod_name);
void main(){
init();
ordered_insert(1);
ordered_insert(2);
ordered_insert(3);
ordered_insert(4);
ordered_insert(5);
nexted_insert(4,6);
del(4);
modify(5,7);
print_dnode();
}
void init(){
head = (dnode*)malloc(sizeof(dnode));
tail = (dnode*)malloc(sizeof(dnode));
head->pre_link = 0;
head->nxt_link = tail;
tail->pre_link = head;
tail->nxt_link = 0;
}
void ordered_insert(int name){
dnode *temp;
dnode *ins_temp;
ins_temp = (dnode*)malloc(sizeof(dnode));
temp = head->nxt_link;
while(temp->nxt_link != 0){
temp = temp->nxt_link;
}
temp->pre_link->nxt_link = ins_temp;
ins_temp->nxt_link = temp;
ins_temp->name = name;
ins_temp->pre_link = temp->pre_link;
tail->pre_link = ins_temp;
}
void nexted_insert(int std_name, int nxt_name){
dnode *std_temp;
dnode *nxt_temp;
nxt_temp = (dnode*)malloc(sizeof(dnode));
nxt_temp->name = nxt_name;
std_temp = head->nxt_link;
while(std_temp->name != std_name){
std_temp = std_temp->nxt_link;
}
nxt_temp->nxt_link = std_temp->nxt_link;
std_temp->nxt_link = nxt_temp;
nxt_temp->pre_link = std_temp;
}
void print_dnode(){
dnode* temp;
temp = head->nxt_link;
while(temp->nxt_link != 0){
printf("%d\n",temp->name);
temp = temp->nxt_link;
}
}
void del(int name){
dnode *del_temp;
del_temp = head->nxt_link;
while(del_temp->name != name){
del_temp = del_temp->nxt_link;
}
del_temp->nxt_link->pre_link = del_temp->pre_link;
del_temp->pre_link->nxt_link = del_temp->nxt_link;
free(del_temp);
}
void modify(int std_name,int mod_name){
dnode *std_temp;
dnode *mod_temp;
std_temp = head->nxt_link;
while(std_temp->name != std_name){
std_temp = std_temp->nxt_link;
}
std_temp->name = mod_name;
}
'IT > Algorithm' 카테고리의 다른 글
Algorithm: 계승(Factorial) (0) | 2012.12.03 |
---|---|
Algorithm: 큐(Queue) (0) | 2012.11.20 |
Algorithm: 링크드리스트(Linked list) (0) | 2012.11.13 |
Algorithm: 러시아 농부 곱셈법(a la russe) (0) | 2012.10.30 |
Algorithm: 요세푸스의 문제(Josephus Problem) (0) | 2012.10.19 |