您的位置:首页 > 其它

单向链表的基本操作-创建、插入、删除

2015-04-14 11:50 471 查看
一.链表的基本概念

单链表 : n个结点链接成一个链式线性表的结构叫做链表,当每个结点中只包含一个指针域时,叫做单链表

表头结点:链表中的第一个结点,包含指向第一个数据元素的指针以及链表自身的一些信息 如长度等

􏰀数据结点:链表中代表数据元素的结点,包含指向下一个数据元素的指

􏰀尾结点: 链表中的最后一个数据结点,其下一元素指针为空,表示无后继

int main()
{

// 链表的创建
linkList *pHead = linkListCreate();
// 创建四个节点
linkList *node1 = linkLisNodeCreate(1);
linkList *node2 = linkLisNodeCreate(2);
linkList *node3 = linkLisNodeCreate(3);
linkList *node4 = linkLisNodeCreate(4);
linkList *node5 = linkLisNodeCreate(5);

// 头插法插到链表中先插入的节点会在后面
linkListInsertNode(pHead, 0, node1);
linkListInsertNode(pHead, 0, node2);
linkListInsertNode(pHead, 0, node3);
linkListInsertNode(pHead, 0, node4);

/* 获取链表长度 */
printf("lengh %d\n",linkListGetLength(pHead));
/* 遍历链表 */
printWithHeadLinkList(pHead);

// 获取第三个位置的元素
linkList *temp = linkListGetNode(pHead,3);
printf("temp ->data = %d\n",temp->data);

/* 删除链表测试用例 */

// 删除右边界节点(最后一个)
linkListDeleteNode(pHead, linkListGetLength(pHead)-1);
// 删除左边界节点(第0个)
linkListDeleteNode(pHead, 0);
// 删除中间的节点
linkListDeleteNode(pHead, 2);
// 删除不存在的节点
linkListDeleteNode(pHead, -1);

printWithHeadLinkList(pHead);

// 销毁链表
freeList(pHead);
pHead = NULL;

return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐