线性表----单链表从指定节点前方插入新节点

    科技2022-08-31  108

    #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; }
    Processed: 0.009, SQL: 9