数据结构——单链表


单链表的查找、插入、删除运算

单链表节点类型定义

typedef struct node{
    int data;           //数据域
    struct node *link;  //指针域
}NODE,*LinkList;

单链表的查找运算

LinkList Find_List(LinkList L, int k){
    LinkList p,int i;
    i = 1;
    p=L->link;
    while(P && i < k){
        p = p->link;
        i++;
    }
    if(p && i == k)
        return p;
    return NULL;
}//Find_List

单链表的插入运算

int Insert_List(LinkList L, int k, int NewElem){
    LinkList p,s;
    if(k == 1)
        p = L;
    else
        p = Find_List(L, k-1);
    if(!p)
        return -1;
    s = (NODE *)malloc(sizeof(NODE));
    if(!s)
        return -1;
    s->data = newElem;
    s->link = p->link;
    p->link = s;
    return 0;
}//Insert_List

单链表的删除运算

int Delete_Link(LinkList L, int k){
    LinkList p,q;
    if(k == 1)
        p = L;
    else
        p = Find_List(L, k-1);
    if(!p || !p->link)
        return -1;
    q = p->link;
    p->link = q->link;
    free(q);
    return 0;
}//Delete_Link

声明:May丶乘剑的部落小阁|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 数据结构——单链表


一个偶尔努力、偶尔懈怠的"搬砖"人