线性表----尾插法创建链表

    科技2025-08-03  14

    #include <stdio.h> #include <stdlib.h> struct Test { int data; struct Test *next; }; struct Test *insertBehind(struct Test *head,struct Test *new) { struct Test *p = head;//注意防止指针头发生变化 if(p == NULL){ head = new; return head; } while( p->next != NULL){ p = p->next; } p->next = new; return head; //返回原来的指针头 } struct Test *createLink2(struct Test *head) { struct Test *new; while(1){ new = (struct Test*)malloc(sizeof(struct Test) ); printf("input data:\n"); scanf("%d",&(new->data)); if(new->data == 0){ printf("OK\n"); return head; } head = insertBehind(head,new); } } struct Test *createBehind(struct Test *head) { struct Test *new; while(1){ struct Test *p = head; new = (struct Test*)malloc(sizeof(struct Test) ); printf("input data:\n"); scanf("%d",&new->data); if(new->data == 0){ printf("0 quit\n"); return head; } if(head == NULL){ head = new; }else{ while(p->next != NULL){ p = p->next; } p->next = new; } } } void printLinks(struct Test *head) { struct Test *p = head; while(p != NULL){ printf("data = %d\n",p->data); p = p->next; } } int main() { struct Test *head; //head = createLink2(head); head = createBehind(head); printLinks(head); return 0; }
    Processed: 0.015, SQL: 8