单链表相关操作之C语言实现:插入,删除,倒转,复制,查找。。。

本文介绍了如何使用C语言实现链表的各种操作,包括创建空节点、带有数据的节点、删除头节点、删除尾节点、删除指定节点、倒转链表、查找数据、复制链表以及打印链表。还提供了完整的源代码示例,涵盖了链表的基本操作。
摘要由CSDN通过智能技术生成
typedef struct node  
{  
    node *next; /* pointer to next element in list */  
    char data;  
}node, *pnode, **ppnode;   // define two types  
// create an empty node  
pnode list_createNullNode()  
{  
    pnode p1;  
    if (p1 = (pnode)malloc(sizeof(node)))  
    {  
        p1->next = NULL;  
    }  
    return p1;  
}  
// create a node with data  
pnode list_createNode(char c)  
{  
    pnode p1;  
    if (p1 = (pnode)malloc(sizeof(node)))  
    {  
        p1->data = c;  
        p1->next = NULL;  
    }  
    return p1;  
}  
// delete head  
void list_removeHead(node **p)   
{  
    pnode n = *p;  
    if (*p == NULL) return;  
    *p = (*p)->next;  
    free(n);  
}  
// delete the tail  
void list_removeTail(node **p)  
{     
    pnode n = *p;     
    if (*p == NULL) return;  
    if ((*p)->next == NULL)  
    {  
        *p = NULL;  
        free(n);  
        return;  
    }  
    while (n->next->next) n = n->next;  
    free(n->next);  
    n->next = NULL;  
}  
// delete a node  
bool list_deleteNode(node **p, pnode n)  
{  
    pnode m = *p;  
    pnode prem;  
    if ((*p == NULL)||(n == NULL)) return false;  
    if (*p == n)  
    {  
        *p = (*p)->next;  
        free(m);  
        return true;  
    }  
    pre
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值