c语言-单链表(一)
定义节点:
typedef struct Node {
int data;
Node* pNext;
}NODE, *PNODE;
细节说明,PNode 就代表struct Node* ,上面的表单是也可以写成如下形式,含义是一样的
typedef struct Node {
int data;
Node* pNext;
}*PNODE,NODE ;
算法操作
1. 创建链表
//1.初始化链表
PNODE create_list(void) {
int len,val;
printf("%s", "请输入你要生成链表的长度\n");
scanf("%d", &len);
PNODE pHead = (PNODE)malloc(sizeof(NODE));//创建一个头结点
PNODE pTail = pHead;//永远指向最后一个
pTail->pNext = NULL;
for (int i = 0; i < len; i++)
{
printf("请输入第%d个变量的数值 ", i);
scanf("%d", &val);
PNODE p = (PNODE)malloc(sizeof(NODE));
if (NULL == p) {
printf("分配内存失败");
}
p->data = val;
p->pNext = NULL; pTail->pNext = p;//尾节点指向挂在Ptail上
pTail = p;//pTail 就是尾节点了
}
return pHead;
}
2. 显示链表数据
//2.输出
void show_list(PNODE pHead) {
PNODE p = pHead->pNext;//第一个节点地址
while (p != NULL)
{
printf("%d\n", p->data);
p = p->pNext;
}
printf("\n");
return;
}
3. 运行测试
int main()
{
PNODE pHead = NULL;//代表 Struct Node* pHead=NULL;
pHead = create_list();//
show_list(pHead);
return 0;
}

c语言-单链表(一)的更多相关文章
- C语言单链表实现19个功能完全详解
谢谢Lee.Kevin分享了这篇文章 最近在复习数据结构,想把数据结构里面涉及的都自己实现一下,完全是用C语言实现的. 自己编写的不是很好,大家可以参考,有错误希望帮忙指正,现在正处于编写阶段,一共将 ...
- C语言—单链表
单链表操作:读取,插入和删除 #include "stdafx.h" #include <string.h> #include <stdio.h> #inc ...
- C语言——单链表初始化、求表长、读表元素、插入元素
头文件Linear.h // 单链表的类型定义 typedef struct node { int data; // 数据域 struct node *next; // 指针域 }Node, *Lin ...
- c语言-单链表(二)
继续复习链表知识点,本章包含单链表的增加,删除,判断是否为空,和链表长度,以及链表的排序 几个知识点 1.链表的判断是否为空 //1.判断链表是否为空 bool isempty_list(PNODE ...
- c语言单链表实现
/************************************************************************* > File Name: singleLin ...
- C语言单链表的实现
// // main.c // gfhjhgdf // // Created by chenhao on 13-12-23. // Copyright (c) 2013年 chenhao. A ...
- 零基础玩转C语言单链表
下图为最一简单链表的示意图: 第 0 个结点称为头结点,它存放有第一个结点的首地址,它没有数据,只是一个指针变量.以下的每个结点都分为两个域,一个是数据域,存放各种实际的数据,如学号 num,姓名 n ...
- c语言——单链表分拆——头插法创建链表,尾插法生成链表
#if 1 #include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; ...
- C语言单链表简单实现(简单程序复杂化)
PS: goto还是很好玩的. #include <stdio.h> #include <stdlib.h> typedef struct _node{ int value; ...
随机推荐
- 字符串处理sdut 2411
题目:http://www.sdutacm.org/sdutoj/problem.php?action=showproblem&problemid=2411 关于字符串处理的题,此题坑点很多w ...
- CentOS 7 安装 docker-compose
compose是用来在docker中定义和运行复杂应用的小工具,比如在一个文件中定义多个容器,只用一行命令就可以让一切就绪并运行. 安装pip: 这里显示,找不到相应的包?? 说没有python-pi ...
- ZooKeeper服务-操作(API、集合更新、观察者、ACL)
操作 create:创建一个znode(必须要有父节点)delete:删除一个znode(该znode不能有任何子节点)exists:测试一个znode是否存在并且查询它的元数据getACL,setA ...
- c3p0 数据库连接池相关知识
c3p0数据库连接池的配置文件放在eclipse的src目录下,代码就可以识别. c3p0的配置文件的内容如下: <!-- Uncomment and set any of the option ...
- RelativeSource={RelativeSource TemplatedParent}
<!--按钮样式开始--> <Style x:Key="NotifyBtnStyle" TargetType="{x:Type commondC ...
- hzau 1203 One Stroke
1203: One Stroke Time Limit: 2 Sec Memory Limit: 1280 MBSubmit: 264 Solved: 56[Submit][Status][Web ...
- 交换排序—冒泡排序(Bubble Sort)算法原理以及Java实现
基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将 ...
- Spring3.2.9 + JdbcTemplate 事务
XML新增声明式事务配置 <!-- 事务管理器 --> <bean id="transactionManager" class="org.springf ...
- 基于鸿洋博客自定于View实现的android音量调节控件
1.在values建立attrs.xml,写出你需要的属性: <?xml version="1.0" encoding="utf-8"?> < ...
- 分布式_事务_01_2PC框架raincat快速体验1
一.前言 关于2PC的理论知识请见:分布式_理论_03_2PC 这一节我们来看下github上一个优秀的2PC分布式事务开源框架的快速体验. 二.源码 源码请见: https://github.com ...