#include <stdio.h>#include <stdlib.h>#define MAXLENGTH 1000struct linkNode{ int date; struct linkNode *link;};typedef struct linkNode linkNode;linkNode* createLinkNode(){ int i ; linkNode *node ,*p,*_temp; node = (linkNode*)malloc(sizeof(linkNode)); if(!node){ printf("分配記憶體失敗"); exit(1); } puts("請輸入一個值"); scanf("%d",&node->date); node->link = NULL; _temp = node; for(i =1; i<3 ;i++){ p = (linkNode*)malloc(sizeof(linkNode)); if(!p){ puts("分配記憶體失敗"); exit(1); } puts("請輸入一個值"); scanf("%d",&p->date); p->link =NULL; _temp->link = p; _temp = _temp->link; } return node; }linkNode* findNode(linkNode *head, int num){ linkNode *p = head; while(p){ if(p->date == num)return p; p = p->link; } return p;}void showNode(linkNode* p){ while(p!=NULL){ printf("%d\t",p->date); p = p->link; }}void insertNode(linkNode *p,int val){ linkNode *newNode = (linkNode*)malloc(sizeof(linkNode)); newNode->date = val; newNode->link = NULL; if(p->link == NULL) p->link = newNode; else{ newNode->link = p->link; p->link = newNode; } return ;}void deleteNode(linkNode *head,linkNode *p){ linkNode *_temp; if(p->link !=NULL){ _temp = head; while(_temp->link !=NULL){ if(_temp->link == p){ _temp->link = p->link; break; } _temp = _temp->link; } } free(p); return;}void freeNode(linkNode *head){ linkNode *ptr; while(head !=NULL){ ptr = head; head = head->link; free(ptr); }}void main(){ int sear,sear1; linkNode *newHead,*ptr ; newHead = createLinkNode(); showNode(newHead); printf("輸入要找的值"); scanf("%d",&sear); ptr = findNode(newHead,sear); if(!ptr){ printf("沒有找到要找的值"); }else{ puts("請輸入要插入的資料"); scanf("%d",&sear); insertNode(ptr,sear); showNode(newHead); } puts("請輸入要尋找並刪除的資料"); scanf("%d",&sear1); ptr = findNode(newHead,sear1); if(!ptr){ puts("沒找到該值"); }else{ deleteNode(newHead, ptr); showNode(newHead); }}