#include<stdio.h> #define INIT() (Node*)malloc(sizeof(Node)) typedef struct node{ //带头结点的链表 int data; struct node* next; }Node,*List; List Init(){ //创建空链表,返回头节点 Node* head=(Node*)malloc(sizeof(Node)); head->data=0; head->next=NULL; return head; } void Insert(List head,int val){ //插入节点 Node* cur=head; while(cur->next) cur=cur->next; Node* p=INIT(); p->data=val; p->next=NULL; cur->next=p; head->data++; } void Add(List head,int i){ Node *cur=head->next; int n=1; for(n;n<i;n++) cur=cur->next; Node* node=INIT(); node->data=i; node->next=cur->next; cur->next=node; } int main(){ int n,a,i; scanf("%d%d",&n,&i); List head=Init(); for(int i=0;i<n;i++){ scanf("%d",&a); Insert(head,a); } Add(head,i); Node* cur=head->next; while(cur){ printf("%d ",cur->data); cur=cur->next; } return 0; }
没写出来不知道问题出在哪里了就是插入到后面