赞
踩
与数组相似,链表也是一种线性数据结构, 区别在于数组在内存中是连续存储的一种数据结构,链表在内存中是不连续存储的,这样就会使得链表的存储更灵活一些。
链表有两种类型:单链表和双链表
链表的操作,跟其他的数据结构一样, 也是 增、删、改、查,下文将重点介绍这些。
单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。 链表增删改查的demo代码如下:
#include <stdio.h> #include <stdlib.h> typedef struct Link { int elem; struct Link *next; }link; link * initLink(); //链表插入的函数,p是链表,elem是插入的结点的数据域,add是插入的位置 link * insertElem(link * p, int elem, int add); //删除结点的函数,p代表操作链表,add代表删除节点的位置 link * delElem(link * p, int add); //查找结点的函数,elem为目标结点的数据域的值 int selectElem(link * p, int elem); //更新结点的函数,newElem为新的数据域的值 link *amendElem(link * p, int add, int newElem); void display(link *p); link * initLink() { link * p = (link*)malloc(sizeof(link));//创建一个头结点 link * temp = p;//声明一个指针指向头结点,用于遍历链表 //生成链表 for (int i = 1; i < 5; i++) { link *a =
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。