#include <stdio.h>
#include <malloc.h>
#define EMPTY 0
typedef struct node {
int data;
struct node *link;
}General;
General* Head = 0;
/*
Linklist* search(int num)
{
static Linklist* tmpss;
Linklist* tmp;
static int nums=0;
if(nums>num)
return tmpss;
if(nums>0)
{
tmp = tmpss->link;
tmpss = tmp;
}
//맨처음. Head=0,num=1.
else
{
tmpss=Head;
}
nums++;
search();
}
*/
General* GetNode(){
General* newNode = (General *)malloc(sizeof(General));
newNode->link = EMPTY;
return newNode;
}
void InsertNode(int Data){
static int num = 0;
static General* tmpss;
static General* tmpssx;
General* newNode = GetNode();
if (Head == 0){
newNode->data = Data;
Head = newNode;
return;
}
if (Head->link == 0){
Head->link = newNode;
newNode->data = Data;
return;
}
else
{
if (num == 0)
tmpss = Head->link;
if (tmpss->link == 0){
newNode->data = Data;
tmpss->link = newNode;
return;
}
else
{
tmpssx = tmpss->link;
tmpss = tmpssx;
num++;
InsertNode(Data);
}
}
}
/*
void AddNode(int Data, int Datain)
{
Linklist * tmp;
tmp = (Linklist*)malloc(sizeof(Linklist));
static Linklist * tmpss;
static Linklist * tmpssx;
static int num = 0;
if (num == 0)
tmpss = Head->link;
if (Head->data == Data)
{
if (Head->link == 0)
{
tmp->data = Datain;
Head->link = tmp;
tmp->link = tmpss;
return;
}
else
{
tmpss = Head->link;
tmp->data = Datain;
Head->link = tmp;
tmp->link = tmpss;
return;
}
}
else
{
if (tmpss->data == Data)
{
if (tmpss->link == 0)
{
tmpss->link = tmp;
tmp->data = Datain;
tmp->link = 0;
return;
}
else
{
tmp->data = Datain;
tmp->link = tmpss->link;
tmpss->link = tmp;
return;
}
}
else
{
tmpssx = tmpss->link;
tmpss = tmpssx;
num++;
AddNode(Data, Datain);
}
}
}
void DelNode(int Data)
{
Linklist * tmp;
tmp = (Linklist*)malloc(sizeof(Linklist));
static Linklist * tmpss;
static Linklist * tmpssx;
static Linklist * tmpssx2;
static int num = 0;
if (Head == 0)
return;
if (num == 0)
{
tmpss = Head->link;
tmpssx2 = Head;
}
else
{
}
if (Head->data == Data)
{
if (Head->link == 0)
{
free(Head);
Head = 0;
return;
}
else
{
free(Head);
Head = tmpss;
return;
}
}
else
{
if (tmpss->data == Data)
{
if (tmpss->link == 0)
{
free(tmpss);
tmpssx2->link = 0;
return;
}
else
{
tmpssx2->link = (tmpss->link)->link;
free(tmpss);
return;
}
}
else
{
tmpssx = tmpss->link;
tmpssx2 = tmpss;
tmpss = tmpssx;
num++;
DelNode(Data);
}
}
}
*/
void main()
{
printf("%p\n", Head);
InsertNode(10);
printf("%d,%p\n", Head->data, Head->link);
InsertNode(20);
printf("%d,%p\n", Head->data, (Head->link)->link);
InsertNode(30);
printf("%d,%p\n", Head->data, ((Head->link)->link)->link);
InsertNode(40);
printf("%d,%p\n", Head->data, (((Head->link)->link)->link)->link);
InsertNode(50);
printf("%d,%p\n", Head->data, (((Head->link)->link)->link)->link);
AddNode(10, 35);
printf("%d,%p\n", Head->data, Head->link);
AddNode(35, 45);
printf("%d,%p\n", Head->data, Head->link);
DelNode(10);
printf("%d,%p\n", Head->data, Head->link);
DelNode(35);
printf("%d,%p\n", Head->data, Head->link);
DelNode(45);
printf("%d,%p\n", Head->data, Head->link);
DelNode(50);
printf("%d,%p\n", Head->data, Head->link);
}