数据结构学习笔记-2

 typedef struct Node
{
    ElemType data;       //数据域
    struct Node* Next;   //存放后继结点地址
} Node;

typedef struct Node* LinkList

单链表插入(C语言实现)

Status ListInsert(LinkList L, int i, ElemType e)
{
    int j;
    LinkList p, s;

    p = L;
    j = 1;

    while(p && j<i)
    {
        p = p->Next;
        ++j;
    }

    if(!p || j>i)
    {
        return ERROR;
    }

    s = (LinkList)malloc(sizeof(Node));
    s->data = e;

    s->next = p->next;
    p->next = s;

    return OK;        
 }

单链表删除(C语言实现)

Status ListInsert(LinkList L, int i, ElemType *e)
{
    int j;
    LinkList p, q;

    p = L;
    j = 1;

    while(p && j<i)
    {
        p = p->Next;
        ++j;
    }

    if(!(p->next) || j>i)
    {
        return ERROR;
    }

    q = p->next;
    p->next = q->next;


    *e = q->data;
    free(q);

    return OK;        
 }