#include <stdio.h>
struct Test
{
int data;
struct Test *next;
};
void printLink(struct Test *head)
{
struct Test *p;
p = head;
while(p != NULL){
printf("data = %d\n",p->data);
p = p->next;
}
printf("------------------\n");
}
void insertBehind(struct Test *head,struct Test *new,int data2)
{
struct Test *p;
p = head;
while(p != NULL){
if(p->data == data2){
new->next = p->next;
p->next = new;
}
p = p->next;
}
}
struct Test *insertFromfor(struct Test *head,struct Test *new,int data2)
//返回一个指针 使main中传递的指针头发生变化
{
if(head->data == data2){
new->next = head;
head = new;
return head;
}
while(head->next != NULL){
if(head->next->data == data2){
new->next = head->next;
head->next = new;
return head;
}
head = head->next;
}
}
int main()
{
struct Test t1 = {1,NULL};
struct Test t2 = {2,NULL};
struct Test t3 = {3,NULL};
struct Test t4 = {4,NULL};
struct Test t = {100,NULL};
t1.next = &t2;
t2.next = &t3;
t3.next = &t4;
struct Test *head = &t1;
printLink(head);
head = insertFromfor(head,&t,2);
printLink(head);
return 0;
}
04-20
181
05-27
2012