链表源代码(C语言实现)
源代码(C语言实现)
①.构造链表节点
typedef struct Node //一个单独的节点
{
int data;//数据域
struct Node * pNext;//指针域
}NODE,* PNODE;
②.链表的初始化
PNODE init_list()
{
int len ;//链表的长度
int i;//循环开关
int val;//节点的值
PNODE pHead = (PNODE)malloc(sizeof(NODE));//造出头结点
if (NULL==pHead)
{
printf("链表动态分配失败!程序终止!\n");
exit(-1);
}
else
{
printf("请输入要创建链表的长度len=");
scanf("%d",&len);
if (0==len)
{
pHead->pNext = NULL;
return pHead; //对空链表的处理
}
if (len<0) //对长度为负数的处理
{
printf("链表的长度不能为负数!\n");
exit(-1);
}
PNODE pTail = pHead;//pTail指向的是尾节点
pTail->pNext = NULL;
for (i=0;i<len;i++)
{
PNODE pNew = (PNODE)malloc(sizeof(NODE));//造出新的节点
printf("请输入第%d个节点的数值val =",i+1);
scanf("%d",&val);
pNew->data = val; //赋值
pTail->pNext = pNew; //连接新的节点
pTail = pNew; //pTail后移
}
pTail->pNext = NULL;//最后一个节点的指针域必须为空
return pHead; //返回头结点以用来表示整个链表
}
}
链表源代码(C语言实现)的更多相关文章
- Microsoft源代码注释语言(SAL)提供设置批注
Microsoft源代码注释语言(SAL)提供设置批注可以使用描述的功能如何使用其参数,它对其假设并确保它使其在完成. 批注可标头文件 <sal.h>定义. Visual Studio C ...
- 基于链表的C语言堆内存检测
说明 本文基于链表实现C语言堆内存的检测机制,可检测内存泄露.越界和重复释放等操作问题. 本文仅提供即视代码层面的检测机制,不考虑编译链接级的注入或钩子.此外,该机制暂未考虑并发保护. 相关性文章参见 ...
- 【数据结构】之链表(Java语言描述)
以前写过一篇帖子,记录了链表在C语言中的描述代码.C语言中没有链表的直接实现,因此,我们需要自己编写代码实现.请参考[我的这篇文章]. Java中默认为我们提供了链表的API—— LinkedList ...
- 指针与数据结构算法_链表(C语言)
一.变量: 声明一个变量系统是没有给这个变量分配内存空间的: 例: int j;//编译的时候是没有分配内存空间的 ;//计算机在编译的时候就会给这个i分配4个字节的内存空间 二.malloc动态分配 ...
- 数据结构入门之链表(C语言实现)
这篇文章主要是根据<数据结构与算法分析--C语言描述>一书的链表章节内容所写,该书作者给出了链表ADT的一些方法,但是并没有给出所有方法的实现.在学习的过程中将练习的代码记录在文章中,并添 ...
- 无头结点的单链表(C语言)
1.单链表: 在顺序表中,用一组地址连续的存储单元来一次存放线性表的结点,因此结点的逻辑顺序与物理顺序是一致的.但链表却不同,链表是用一组任意的存储单元来存放 线性表的结点,这组存储单元可以是连续的, ...
- 单链表(C语言实现)
链表结构: SList.h //-------------------------------------------------------------------------- /* **功能:应 ...
- 【数据结构】之链表(C语言描述)
链表是线性表的一种,是一种物理存储单元上非连续的存储结构,链表中的数据元素之间是通过指针链接实现的. 链表由一系列节点组成,节点可以在运行时动态的生成. 链表中国的每个节点分为两部分:一部分是存储数据 ...
- 郑州尚学堂:链表的C语言如何实现动态内存分配
一.为什么用动态内存分配 但我们未学习链表的时候,如果要存储数量比较多的同类型或同结构的数据的时候,总是使用一个数组.比如说我们要存储一个班级学生的某科分数,总是定义一个float型(存在0.5分)数 ...
随机推荐
- exit()和return语句的区别
(1)exit用于结束正在运行的程序,exit函数将参数是返回给OS.而return是返回函数值并退出函数. (2)return是语言级别的,它表示了调用堆栈的返回:而exit是系统调用级别的,它表示 ...
- NMS 和 Soft-NMS
转自https://zhuanlan.zhihu.com/p/42018282 一 NMS NMS算法的大致思想:对于有重叠的候选框:若大于规定阈值(某一提前设定的置信度)则删除,低于阈值的保留.对于 ...
- tornado nginx 同源(Access-Control-Allow-Origin)错误处理记录
如果以下两个步骤操作完还是没有解决问题,可能是因为程序出了别的错误,因为后来的调试中不论出什么问题它都是会返回同源错误..呵呵哒 1.在nginx.conf里配置server,在location里添加 ...
- 路由的配置,侧边栏类名与url的结合运用
var url_array = document.location.pathname.split("/"); s1 = url_array[1]; s2 = url_array[2 ...
- 详解Spring MVC 4常用的那些注解
Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版 ...
- id 工具: 查询用户所对应的UID 和GID 及GID所对应的用户组
id 工具是用来查询用户信息,比如用户所归属的用户组,UID 和GID等:id 用法极为简单:我们举个例子说明一下: 语法格式: id [参数] [用户名] 至于有哪些参数,自己查一下 id -- ...
- 部分树形DP的优化
ural1018. Binary Apple Tree 题目大意 有一棵n个节点的树,树上每个节点有一个值,选择m个节点使这些节点值的和最大 要求:如果选当前节点,则必须选它的父节点 解法: 我们设d ...
- vue之this.$route.params和this.$route.query的区别
1.this.$route.query的使用 A.传参数: this.$router.push({ path: '/monitor', query:{ ...
- tr的display属性出现td的colspan无效问题
http://www.aichengxu.com/other/9262680.htm 今天在做项目的时候发现用javascript控制 tr 的显示隐藏时,当把tr的显示由“display:none” ...
- Hdu 4965(矩阵快速幂)
题目链接 Fast Matrix Calculation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K ...