#include<stdio.h>
#include<math.h>
#include<stdlib.h>
typedef struct node NODE;
typedef struct node
{
char x[3];
NODE *prev;
NODE *next;
}NODE;
NODE *head = NULL;
NODE *tail = NULL;
NODE* Find_Node(char *x)
{
NODE *node;
node = (NODE*)malloc(sizeof(NODE));
node = head->next;
while(node != tail)
{
if( strcmp(node->x,x) < 0)
return node;
else if( strcmp(node->x,x) == 0)
return node;
else if( strcmp(node->x,x) > 0 )
return node->prev;
}
return node;
}
int Insert_Node(char *x)
{
NODE *newnode;
newnode = (NODE*)malloc(sizeof(NODE));
strcpy(newnode->x , x);
if(head == tail)
{
head = (NODE*)malloc(sizeof(NODE));
tail = (NODE*)malloc(sizeof(NODE));
newnode->prev = head;
newnode->next = tail;
head->next = newnode;
tail->prev = newnode;
head->prev = NULL;
tail->next = NULL;
return 0;
}
NODE *temp_node = Find_Node(x);
if(!temp_node)
{
newnode->prev = head;
newnode->next = head->next;
head->next->prev = newnode;
head->next = newnode;
}
else
{
temp_node = Find_Node(x);
newnode->prev = temp_node;
newnode->next = temp_node->next;
temp_node->next->prev = newnode;
temp_node->next = newnode;
}
return 0;
}
int Delet_Node(char x)
{
return 0;
}
void Display()
{
NODE *node;
node = (NODE*)malloc(sizeof(NODE));
if( !head )
return;
while(node != tail)
{
printf("%c\n",node->x);
node = node->next;
}
}
void main()
{
Insert_Node('a');
Insert_Node('b');
Insert_Node('d');
Insert_Node('c');
Insert_Node('s');
Insert_Node('h');
Insert_Node('d');
Display();
}
댓글