#include <stdio.h>
#include <stdlib.h>
struct node
{
int num;
struct node *next;
};
typedef struct node Node;
typedef Node * Link;
void creat_link(Link *head)
{
*head = NULL;
}
void insert_head(Link *newnode, Link *head)
{
(*newnode)->next = *head;
*head = *newnode;
}
void insert_tail(Link *newnode, Link *head)
{
if(*head == NULL)
{
(*newnode)->next = NULL;
*head = *newnode;
}
else
{
Link temp = *head;
while(temp->next != NULL)
{
temp = temp->next;
}
temp->next = *newnode;
(*newnode)->next = NULL;
}
}
void insert_mid(Link *newnode, Link *head, int num)
{
Link temp = *head;
while(temp->next != NULL)
{
if(temp->num == num)
{
(*newnode)->next = temp->next;
temp->next = *newnode;
break;
}
temp = temp->next;
}
}
void display_node(Link *head)
{
Link temp = *head;
while(temp != NULL)
{
printf("%d\n",temp->num);
temp = temp->next;
}
}
int main()
{
int i;
Link head;
Link newnode;
creat_link(&head);
for(i = 0; i < 10; i++)
{
newnode = (Link)malloc(sizeof(Node));
newnode->num = i + 1;
//insert_head(&newnode, &head); //头插
insert_tail(&newnode, &head); //尾插
}
display_node(&head);
newnode = (Link)malloc(sizeof(Node));
newnode->num = 66;
int num = 8;
insert_mid(&newnode, &head, num);//中间插入
display_node(&head);
return 0;
}
#include <stdlib.h>
struct node
{
int num;
struct node *next;
};
typedef struct node Node;
typedef Node * Link;
void creat_link(Link *head)
{
*head = NULL;
}
void insert_head(Link *newnode, Link *head)
{
(*newnode)->next = *head;
*head = *newnode;
}
void insert_tail(Link *newnode, Link *head)
{
if(*head == NULL)
{
(*newnode)->next = NULL;
*head = *newnode;
}
else
{
Link temp = *head;
while(temp->next != NULL)
{
temp = temp->next;
}
temp->next = *newnode;
(*newnode)->next = NULL;
}
}
void insert_mid(Link *newnode, Link *head, int num)
{
Link temp = *head;
while(temp->next != NULL)
{
if(temp->num == num)
{
(*newnode)->next = temp->next;
temp->next = *newnode;
break;
}
temp = temp->next;
}
}
void display_node(Link *head)
{
Link temp = *head;
while(temp != NULL)
{
printf("%d\n",temp->num);
temp = temp->next;
}
}
int main()
{
int i;
Link head;
Link newnode;
creat_link(&head);
for(i = 0; i < 10; i++)
{
newnode = (Link)malloc(sizeof(Node));
newnode->num = i + 1;
//insert_head(&newnode, &head); //头插
insert_tail(&newnode, &head); //尾插
}
display_node(&head);
newnode = (Link)malloc(sizeof(Node));
newnode->num = 66;
int num = 8;
insert_mid(&newnode, &head, num);//中间插入
display_node(&head);
return 0;
}