辛辛苦苦做出来的啊!
#include<stdio.h>
#include<malloc.h>
#include
    <stdlib.h>
typedef struct Lnode
{
        int data;
        struct Lnode *next;
}Lnode,*Linklist;
//*********************************************************链表创建函数
int
    creat (Linklist &L,int n)
{
      Lnode *p;
      
      p=(Linklist)malloc(sizeof (Lnode)); //
      p->data=n;
      p->next=L;
      L=p;
      return 1;
}
//******************************************************删除函数部分
int del (Linklist &p,int n)
{
    int i;
    Lnode *q;
    
    for(i=1;i<n-1;i++)
            p=p->next;
    //找到删除元素前一个节点
            
            printf("要删除的节点对应数据是 %d\n",p->next->data);
            q=p->next;
      //将要删除的元素赋给q
            p->next=q->next;
            
            free(q);
      //释放q节点
            return 1;
}
//*********************************************************************插入函数部分
int insert (Linklist &L1,Lnode *p,int m)
{
        int i;
       for(i=1;i<m-1;i++)
                L1=L1->next;
    //找到要插入节点位置前一个节点
               p->next=L1->next;
                L1->next=p;
                return 1;
}
//*******************************************************************主函数部分
int main()
{
      
        int flag=0;
        int data;
    
        int i;
          //作为计数器
       int num;
    //链表的总长度
        int del_num,insert_num;
       //要删除插入节点的序列号
        Lnode *newnode;
    //创建等待插入节点
       Lnode *L1;
//Lnode *ceshi;
        Linklist L;
        L=newnode=(Linklist)malloc(sizeof(Lnode));
        L->next=NULL;
//*************************************************开始创建链表
       printf("请输入链表长度(int):\n");
        scanf("%d",&num);
        
        for(i=1;i<=num;i++)
        {
                printf("请输入节点数据(整数):\n");
                scanf("%d",&data);
                creat(L,data);
       
       }
/********************************************************************测试时使用此语句
       ceshi=L;
        printf("你创建的链表是:\n");
        while(!(ceshi->next==NULL))
        {
                printf(" %d ",ceshi->data);
                ceshi=ceshi->next;
        }
        
        
        printf("\n");
       printf("创建链表成功!\n");
        printf("****************************");
        
        
*/
        
//***************************************************************************删除部分
        while(flag==0)
        {
                printf("\n请输入要删除节点的序列号:\n");
               scanf("%d",&del_num);
                 if(del_num<=1||del_num>=num)
                         printf("输入有误(你不能删除首节点和尾节点)!");
                 else
                       flag=1;
        }
            
        L1=L;
    //防止更改L
        del(L1,del_num);
      
        printf("删除节点后的链表是:\n");
        
        L1=L;
    //防止更改L
       while(!(L1->next==NULL))
        {
                printf(" %d ",L1->data);
                L1=L1->next;
        }
        printf("\n\n");
//********************************************************************调用插入函数
        
        
    
        printf("请输入要插入节点的数据部分(int型):\n");
       scanf("%d",&data);
       
        newnode->data=data;
       
        printf("\n请输入insert_num的值(int型):\n");
        printf("新节点将被插入在你输入节点号对应节点的后面!\n");
        
        scanf("%d",&insert_num);
        
        printf("节点将被插在第%d个节点之后!\n",insert_num);
        
        
        L1=L;
        insert(L1,newnode,insert_num);
    
        printf("\n插入新节点后的链表是:\n");
       L1=L;
        for(i=1;i<=num;i++)
        
        {
                printf(" %d ",L1->data);
                L1=L1->next;
        }
        
        printf("\n\n");
        return 1;
}										
					收到的鲜花