//线性表的基本操作
#include <iostream.h>
#include<stdio.h>
#include <stdlib.h>
#define Qelemtype char
#define sqlist L
typedef struct Qnode
  {
    Qelemtype data;
     Qnode *next;
  }  sqlist;
  void initlist (sqlist L)
    {      //sqlist L;
        L=(Qnode )malloc(sizeof(Qnode));
        L->next=NULL;
    }
    void createlist(sqlist &L,int n)
    {
        int i;
        initlist(&L);
        struct Qnode p;
        for(i=n;i>0;i--)
        {
            p=(sqlist)malloc(sizeof(Qnode));
            scanf("&p->data=%c",p->data);
            p->next=l->next;
            L->next=p;
        }
    }
    char listinsert(sqlist &L,int i,Qelemtype e)
    {int j;
    struct Qnode p;
    p=L;
    j=0;
    while (p->next!=NULL&&j<i-1)
    {p=p->next;
    j++;
    }
    if(!p&&j>i-1)
    return -1;
    else s= (sqlist)malloc(sizeof(Qnode));
    s-data=e;
    s->next=p->next;
    p->next=s;
    return ok;
    }
    }
    void listdelete(sqlist L,int i,Qelemtype e)
    {p=L;
    int j=0;
    while(p->next!=null&&j<i-1)
    {
        p=p->next;
        j++;
    }
    if(!p||j>i-1)  return -1;
    q=p->next;
    p->next=q->next;
    e=q->data;
    return q->data;
    free(q);
    }
    void display(Sqlist *L,char * commemt)
    {sqlist *p;
    p=L->next;
    printf("输出结果如下\n");
    while(p)
    {
        printf("p->data=",p->data);
        p=p->next;
    }
    }
    void main()
    {
        sqlist L;
        char e;
        int i=0;
        initlist L;
        create(&L,i,e);
        display(L,"the result");
        listinseeeert(&L,6,c);
          display(L,"the result");
        listdelete(&L,7);
          display(L,"the result");
    }



 
											





 
	    

 
	
