有头结点的单链表,用尾插法导入数据。
#include<bits/stdc++.h> using namespace std; struct node{ int data; struct node *Next; }; typedef struct node Node; void tailinsert(int data,Node *L){ Node *node = (Node*)malloc(sizeof(Node)); node->data = data; node->Next = NULL; if(L->data==0){ L->Next = node; L->data++; } else{ Node *temp = L->Next; while(temp->Next!=NULL){ temp = temp->Next; } temp->Next = node; L->data++; } } void printlist(Node *L){ Node *temp = L->Next; if(temp==NULL){ printf("Link list is empty\n"); return; } while(temp!=NULL){ printf("%d ",temp->data); temp = temp->Next; } printf("\n"); } void deletenode(int data,Node *L){ Node *temp = L; Node *t; while(temp->Next!=NULL){ if(temp->Next->data==data){ t = temp->Next; temp->Next = t->Next; t->Next = NULL; free(t); L->data--; continue; } temp = temp->Next; } } int main() { Node *headnode = (Node*)malloc(sizeof(headnode)); Node *head = headnode; head->data = 0; head->Next = NULL; int n,x,del; cin >> n; for(int i=0;i<n;i++){ cin >> x; tailinsert(x,head); } cin >> del; deletenode(del,head); printlist(head); return 0; }
0.0分
0 人评分