【数据结构】某些难理解点

 1 typedef char ListData;
 2 //表示以后可以用ListData来代替char类型
 3
 4 typedef struct node{     //此处node,只在结构体中出现和使用
 5      ListData data;
 6      struct node *link;
 7 }ListNode;          //表示将整个结构体命名为ListNode,也就是说现在ListNode就是一种像int、char等的数据类型了,可以用它来定义别的节点
 8
 9 typedef ListNode *LinkList;      //此处,表示以后可以用*LinkList来代替ListNode类型,其中LinkList表示的是指针,*LinkList表示的是指针所指的节点,即ListNode
10
11 LinkList first;     //表示定义了一个指针,叫做first,但不能说此时它就是头指针了,首先还要进行空间分配,其次只有在它的基础上继续插入别的指针并且始终保持它在最前面才行
12
13
14 ==================以下要好好理解=====================
15
16 ListNode *p;     //定义了一个指针,指向*p节点
17
18 LinkList p;     //和上式效果相同,直接定义了一个指针
19
20 所以说,
21 ListNode *p = first;
22 和
23 ListLink first;
24 中的first都是指针,p也是指针
25
26 更好的写法是
27 ListNode* p = first;
28
29 类比:
30 typedef int* intPointer;
31
32 int* p, *q;
33 等价于
34 intPointer p, q;
35
36 注意:     int* p 等价于 int *p
37
38 补充:
39 //指针可以理解为一段地址,指向着某个element
40
41 //定义一个指针
42 int* pCount;
43 char* pLetter;
44
45 //&表示取地址符号
46 pCount = &count;
47
48 //由指针得到所指内容,用*符号
49 int a = *pCount;
时间: 2024-11-13 15:19:32

【数据结构】某些难理解点的相关文章

网络传输的加密与解密(不是很难理解的一个版本)

--网络传输的加密与解密--    由于互联网早期并没有考虑到数据报文安全的问题,早期的理念都是基于进行通信的.现在随着网络兴起,互联网上慢慢有很多"犯罪团体",用较低的犯罪成本通常是基于一个网络通信协议的一个小的漏洞来完成窃取.篡改.重播其他人的数据报文. 而往往计算机网络安全维护者和那些恶意攻击者玩的就是一个类似猫鼠游戏,网络安全维护者处处考虑对计算机的安全负责,而恶意攻击者处处找安全的漏洞.而对于那些恶意攻击方式大体分两种. 一种叫被动攻击,大体上来说就是窃听,攻击者获得传输信息

hdu 1301 Jungle Roads 一个很水的题 AC率也可以知道了 但是题目很难理解啊 英语渣o(╯□╰)oKruskal算法

Jungle Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4725    Accepted Submission(s): 3471 Problem Description The Head Elder of the tropical island of Lagrishan has a problem. A burst o

Javascript之旅——第十站:为什么都说闭包难理解呢?

原文:Javascript之旅--第十站:为什么都说闭包难理解呢? 研究过js的朋友大多会说,理解了js的原型和闭包就可以了,然后又说这些都是js的高级内容,然后就又扯到了各种神马的作用域...然后不少 人就会被忽悠的云里雾里...下面我也试着来说说闭包,看我说的这个是否浅显易懂... 一:闭包含义 闭包是个专业词汇,这样才能显得在js中是高大上的货色,官方定义我这里就不敢修改它,定义如下:就是有权访问另一个函数作用域的变量的函数. 二:一个简单的场景 上面的定义大概也能看得懂,但是不知道为什么

数据结构导论初步理解

如今已经来到了大数据的时代,所以我们对数据的了解要更加的深刻.才可以更加理解数据这个词所代表的含义. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 数据是全部被计算机存储.处理的对象.随着科学技术的发展.数据的含义已经从单单的数值.布尔值扩展到了字符串.声音甚至是图像,也代表了计算机的处理能力的日

ADC 转换序列暂时难理解

通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成第一个文件,程序出错的时候理论上都会产生一个core文件,通过工具分析这个文件,我们可以定位到程序异常退出的时候对应的堆栈调用等信息,找出问题所在并进行及时解决. 相信大多数人都遇到过url出现中文乱码的情况,绝大多数人为了避免出现这种问题,所以设计 url 一般都会尽量设计成都是英文字符.但总避免一种情况就是当你的系统中拥有搜索功能时,你无法预

神奇的 SQL 之谓词 → 难理解的 EXISTS

前言 开心一刻 我要飞的更高,飞的更高,啊! 谓词 SQL 中的谓词指的是:返回值是逻辑值的函数.我们知道函数的返回值有可能是数字.字符串或者日期等等,但谓词的返回值全部是逻辑值(TRUE/FALSE/UNKNOW),谓词是一种特殊的函数.关于逻辑值,可以查看:神奇的 SQL 之温柔的陷阱 → 三值逻辑 与 NULL ! SQL 中的谓词有很多,如 =.>.<.<> 等,我们来看看 SQL 具体有哪些常用的谓词 比较谓词 创建表与初始化数据 -- 1.表创建并初始化数据 DROP

数据结构的深入理解

简述 数据结构是组织存储数据,以便我们有效的访问.更改数据.堆栈.队列是计算机中定义最早的数据结构.堆栈是后进先出(一端固定另一端浮动),队列是先进先出的数据组织和存储形式. 代码 堆栈code lists = [] #定义空的堆栈,可以把它理解成一个地铁(这个地铁只有一侧门出入) lists.append('a') #堆栈添加数据,可以把它理解成一个挤进地铁的人最新进入的认会被挤到最后头 lists.append('b') lists.append('f') lists.append('g')

特重要又特难理解应用的——数组和集合

这一章的学习,在视频学习中,感觉已经快懵了,可以说是懵懂,知识点太多,应用繁杂,再结合上章尚未完全消化的if语句和循环利用,考验自己对于问题的逻辑思维能力.这一章的练习作业多,有一定的复杂程度,还未做完,自己心里清楚,如果不自己独立思考完成这些课后作业,就没法通过这一章的学习.尽管习题难,结合视频中的案例分析做法和补充的课外总结,还能勉强找到编程思路,争取明天完成这一章的练习作业,并能不看代码,完成视频教学中的案例编程,相信自己能行!!!

buffer和cache怎么让你们解释的那么难理解?

对于一个即将踏上“系统运维”或者更加高大尚的工作“系统调优”,如果这不跟这两哥们搞好关系了,坑的不只有内存,更坑的是你拿着调优的钱却干着随时被调的活.因为作为一个系统运维人员来说监控和优化IO性能这是最有可能你生存下来的技能,为啥呢?因为你不仅给老板省了钱,还提高了机器的工作效率..虽然钱都进了老板兜里,但你渐渐地植入了他深深地脑海里,总有一天你比钱重要!好了闲话少扯,接下来说说这两个哥们到底是什么? 之前我自己也对到底buffer和cache是什么,有什么不同,什么时候用buffer,什么时候