[C语言] 数据结构-离散存储链表定义
离散存储[链表]
1.定义:
n个节点离散分配,彼此通过指针相连
每个节点只有一个前驱节点
只有一个后续节点
首节点没有前驱节点,尾节点没有后续节点
2.专业术语:
首节点:第一个有效节点
尾节点:最后一个有效节点
头结点:并不存放有效数据,方便操作,头结点的数据类型和首节点类型一样
头指针:指向头节点的指针变量
尾指针:指向尾节点的指针变量
3.确定一个链表需要几个参数:
只需要一个参数:头指针,可以通过头指针可以推算出链表的其他所有信息
4.每个节点的数据类型至少包括
一个有效数据
一个指针变量,指向下一个节点
5.分类
单链表:有一个指针域
双链表:每一个节点有两个指针域
循环链表:连了一个圈,任何节点都能找到其他节点
非循环链表
[C语言] 数据结构-离散存储链表定义的更多相关文章
- [C语言] 数据结构概述
1.数据结构概述 定义 我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中, 以及在此基础上为实现某个功能(比如查找.删除.查找.某个元素,对所有元素进行排序)而 ...
- 循环单链表定义初始化及创建(C语言)
#include <stdio.h> #include <stdlib.h> /** * 含头节点循环单链表定义,初始化 及创建 */ #define OK 1; #defin ...
- 不可或缺 Windows Native (9) - C 语言: 动态分配内存,链表,位域
[源码下载] 不可或缺 Windows Native (9) - C 语言: 动态分配内存,链表,位域 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 动态分配内存 链 ...
- C++学习(三十四)(C语言部分)之 链表
1.栈和队列 操作 增查改删重点 插入删除先进先出 -->队列先进后出 -->栈2.链表 写之前先画图存储数据的方式 通过指针将所有的数据链在一起数据结构的目的 管理存储数据 方便快速查找 ...
- C语言数据结构——第二章 线性表
二.线性表 2.1-线性表简介 2.1.1-线性表的定义 线性表是由若干个相同特性的数据元素组成的有限序列.若该线性表不包含任何元素,则称为空表,此时长度为0,当线性表不为空时,表中的元素的个数就是线 ...
- [数据结构]常见数据结构的typedef类型定义总结
目录 数据结构类型定义: 1.线性表 线性表(顺序存储类型描述): 线性表(动态存储类型描述) 2.线性表的链式表示 双链表的结点类型描述: 静态链表结点类型的描述: 3.栈的数据结构 顺序栈的数据结 ...
- C语言指针与数组的定义与声明易错分析
部分摘自<C语言深度解剖> 1.定义为数组,声明为指针 在文件1中定义: char a[100]; 在文件2中声明: extern char *a; //这样是错误的 这里的extern告 ...
- 【C语言学习】存储类型
C语言中的存储类型主要有四种:auto.static.extern.register ★auto存储类型 默认的存储类型.在C语言中,假设忽略了变量的存储类型,那么编译器就会自己主动默认为auto型 ...
- C语言5种存储区域
C语言5种存储区域 转发至:http://www.mamicode.com/info-detail-927635.html 系统为了管理内存 把内存划分了几个区域 1> 栈区 栈区之中的数据在栈 ...
随机推荐
- WPF之坑——surface触控失灵之谜
本次又遇到了WPF编写触控程序的一个问题,虽然已解决,但原因确搞不太明白,希望有大神看到这篇文章帮我解答. 在项目中实现了自己定义的icommandsource,因为需要对触控有特殊需求,控件对鼠标与 ...
- C#多线程编程系列(五)- 使用任务并行库
目录 1.1 简介 1.2 创建任务 1.3 使用任务执行基本的操作 1.4 组合任务 1.5 将APM模式转换为任务 1.6 将EAP模式转换为任务 1.7 实现取消选项 1.8 处理任务中的异常 ...
- 646. Maximum Length of Pair Chain
You are given n pairs of numbers. In every pair, the first number is always smaller than the second ...
- Dynamic Programming-650. 2 Keys Keyboard
Initially on a notepad only one character 'A' is present. You can perform two operations on this not ...
- python stdout 重定向
import sys class Buffer(object): def __init__(self): self.buffer = [] def write(self, *args, **kwarg ...
- Linux基本命令学习与使用
1.chgrp,chown,chmod(-R递归修改文件夹下的文件) chgrp:修改文件属于哪个组 chown:修改文件属于哪个用户 chmod:修改文件权限r=4,w=2,x=1 chmod 4+ ...
- git常用的命令你知道有哪些?
1.git与svn的区别 1,git是目前世界上最先进的分布式版本控制系统,他没有中央服务器,每个人的电脑就是一个完整的版本库,这样,工作的时候不需要联网 2,svn是集中式版本控制系统,版本库是集中 ...
- OS之进程管理 --- 死锁
什么是死锁 在正常操作模式下,进程按如下顺序来使用资源: 申请:进程请求资源 使用:进程对资源进行操作 释放:进程释放资源 当一组进程中的每一个进程度在等待一个事件,而这事件只能有一组进程的另一个进程 ...
- POJ 1006
#include<iostream>#include<stdio.h>using namespace std;int main(){ //freopen("ac ...
- 剑指offer四十三之左旋转字符串
一.题目 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=”abc ...