linux C 数据结构之单链表
来源:互联网 发布:用在淘宝上的比价神器' 编辑:程序博客网 时间:2024/06/05 03:54
基础学习,只有一种数据类型的单链表
对链表的理解:
一种链式存储结构,通过指针指向下一个要存储的数据的地址,在内存中不要求链表中各个数据内存连续,与数组不同,链表由节点组成,通过指针链接。
对链表概念的理解:
头指针:头指针指向链表的第一个节点
头节点:头节点在定义头指针时产生
struct node{ int data; struct node *pNext;};
链表类型定义
data为链表该节点存储的数据
pNext指向下一个节点
对链表的操作包括:创建节点、在链头插入节点、在链尾插入节点、删除节点、遍历链表。
创建节点步骤:
1、申请一个节点大小的内存空间
2、检查空间是否申请成功
3、清理申请到的内存空间
4、填充该节点的数据
5、将节点中的指针初始化为NULL
struct node * creat_node(int data){ struct node * p = (struct node *)malloc(sizeof(struct node)); if(NULL == p){ printf("malloc error !\n"); return NULL; } bzero(p,sizeof(struct node)); p->data = data; p->pNext= NULL; return p;}
在链头插入节点步骤:
1、新节点指向原来的第一节点
2、头节点的指针指向新的节点
void insert_head(struct node*pH,struct node*new){ new->pNext = pH->pNext; pH->pNext = new;}
在链尾插入节点步骤:
1、找到链位节点(该节点的指针为NULL)
2、将链位节点指针指向新节点
void insert_tail(struct node*pH,struct node*new){ struct node*p = pH; while(NULL != p->pNext){ p = p->pNext; } p->pNext = new;}
删除节点:
引用块内容
遍历链表步骤:
1、由头节点开始遍历并判断当前节点是否为尾节点
2、不是尾节点则取出数据并移动到下一个节点
3、是尾节点,取出数据并停止遍历
void list_foreach(struct node*pH){ struct node *p = pH; printf("start____________________\n"); while(NULL != p->pNext){ p = p->pNext; printf("data = %d\n",p->data); } printf("data = %d\n",p->data); printf("end____________________\n");}
阅读全文
1 0
- linux C 数据结构之单链表
- C数据结构之单链表
- [C++]数据结构之单链表
- 数据结构之单链表(C++)
- c数据结构之单链表操作
- c语言数据结构之单链表
- linux C数据结构类型
- Linux C 函数参考之数据结构及算法篇
- Linux C Function()参考之数据结构及算法篇
- 数据结构之单链表C语言实现
- 数据结构C语言之单链表简单实现
- 数据结构C语言实现之单链表
- 数据结构之单链表C++(模板)
- 数据结构之单链表实现栈(C++)
- 数据结构c语言实现之单链表
- 数据结构c语言实现之静态单链表
- 数据结构之---c语言实现单链表
- 数据结构之单链表实现(C++)
- 如何使用java代码加载指定包下面的所有类
- web应用缓存实践
- ssh免密码自动登陆 expect
- 比特币学习之比特币地址
- thyemleaf引入js和css路径问题
- linux C 数据结构之单链表
- Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory
- Clion点击debug,没有反应,在断点处没有停留
- vuethink使用教程
- Android使用ShareSDK集成QQ、微信、微博等第三方登录
- 设置编译比特币源码-linux
- 浅谈产品设计的抄袭、借鉴与创新
- Swing实现文件自定义下载路劲
- 比特币学习之钱包