以图明志

数据结构

带头结点与不带头结点的单链表初始化

带头结点与不带头结点
不带头结点的单链表对于第一个节点的操作与其他节点不一样,需要特殊处理,这增加了程序的复杂性和出现bug的机会,因此,通常在单链表的开始结点之前附设一个头结点。带头结点的单链表,初始时一定返回的是指向头结点的地址,所以一定要用二维指针,否则将导致内存访问失败或异常。

数据结构

[专题] 结构之美:单链表的头结点与头指针

理解单链表的两个重要概念
当链表的每个结点只包含一个指针域时,我们称此链表为单链表。关于单链表的存取,有时候我们在单链表的第一个结点(有效元素)之前附设一个结点,称之为头结点;指向头结点的指针,称之为头指针;对单链表的存取必须从头指针开始进行,由于单链表的最后一个数据元素没有直接后继,则指针为NULL。

数据结构

[专题] 结构之美:单链表的初始化、创建与遍历

写一个简单的单链表
前面已经对单链表做了一些解释。链表在进行循环遍历时效率不高,但是插入和删除时优势明显。单链表实际上是由节点(Node)组成的,一个链表拥有不定数量的节点。而向外暴露的只有一个头节点(Head),我们对链表的所有操作,都是直接或者间接地通过其头节点来进行的。节点(Node)是由一个需要储存的对象及对下一个节点的引用组成的。

数据结构

线性表的几个链式储存结构介绍

单链表,循环链表与双向链表
线性表的顺序存储结构要求逻辑关系上相邻的元素在物理位置上也相邻,这样方便了随机存取,但是在插入和删除元素时,需要移动大量元素,而线性表的链式存储则不要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构的可随机存取的优点,不过在插入和删除元素时比较方便。

数据结构

[专题] 结构之美:线性表的链式存储结构——链表

链表的详细了解
线性表的链式存储表示的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。因此,为了表示每个数据元素与其直接后继数据元素 之间的逻辑关系,对数据元素来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。由这两部分信息组成一个“结点”,表示线性表中一个数据元素 。

数据结构

线性表的概念、结构与基本操作

线性表概览
什么是线性表?线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。

数据结构

[专题] 结构之美:线性表的查找、插入与删除操作

顺序存储结构的操作
查找线性表是最基本的操作之一,比如根据序号查找元素的值,或者根据值查找该值是否在线性表中,如果在,那么序号是几等等。分析上述插入和删除两段代码和更早的获取元素代码,我们可以发现,线性表的顺序存储结构,在存/读数据时,不管是哪个位置,时间复杂度O(1),而插入或删除时,时间复杂度都是O(n)。

数据结构

[专题] 结构之美:定义一个线性表

从最简单的线性表开始讲起
在计算机中,数据并不是孤立的,而是具有一定内在联系的数据集合,这种联系就是数据结构,说明数据如何被组织在一起的。下面我们从最简单的线性表开始讲起。线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。

计算机数学与基础

想爬得更高,需要知道的数学体系

MIT牛人解说数学体系
作为计算机的学生,我没有任何企图要成为一个数学家。我学习数学的目的,是要想爬上巨人的肩膀,希望站在更高的高度,能把我自己研究的东西看得更深广一些。说起来,我在刚来这个学校的时候,并没有预料到我将会有一个深入数学的旅程。

互联网时代

中国互联网企业的各种生存与发展模式

22个创新模式
网上有人推荐《沸腾十五年》,是讲中国互联网从发源到现今。既然有人已经如此梳理,自己本来也想梳理一下中国互联网这么多年,到底是哪些公司出来了,为什么会是他们出来了。他们的出来代表着什么趋势,他们一串串的连接闪现不同类型的公司有不同的潮流,到底暗示着什么趋势。下一个趋势是什么?当时他们出现的历史环境是什么?以后会不会再出现那样的环境?

IT人家

感悟资产、负债与幸福感

资产、赚钱、负债、幸福感
随着阅历的加深,我关注的事物和接受的知识也在不断地发生着变化。大学毕业已经四年了,过去的半年中,我接触了一些看似不连贯的信息,因为觉得它们有用,就把这些信息全部记在了脑子中。直到最近,才发现一个片段正在解释和说明着另一个片段,而当我把这些片段信息串起来思考的时候,忽然有了一种开朗的感觉。

面向对象技术

面向对象编程的封装、继承、多态

面向对象三个基本特征
面向对象的三个基本特征是:封装、继承、多态。封装是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。面向对象编程 (OOP) 语言的一个主要功能就是“继承”。

IT人家

根基决定一个程序员会不会被淘汰

程序员是一碗青春饭吗?
丰厚的薪水,高端的职位和有成就感的事业是人人都想要的,而这些都取决于你每天的认真工作,努力学习和灵活做人上。日子就像一块块砖,你就像是一个泥瓦匠每天在堆砌着你的人生,最终砌出一个宏伟的大厦或是一幢低矮的小屋甚至是堆成一堆瓦砾全取决于你自己。

互联网时代

修改Win7下的宋体为XP的老宋体

一次经验分享
关于XP宋体和WIN7宋体的差异问题,对于主观性更强字体应用,很难用一种绝对客观的观点去评价这两个字体的优劣。Win7下微软对宋体的修改,让同样像素尺寸宋体相比XP下老版本的宋体从视觉上显得更加饱满,从而令更多小屏幕甚至更多高分辨率屏幕下对文字识别阅读更佳,但是从字形设计上同时又引起了众多设计行业从业者的不满,两者相比,windows xp下的宋体更显得优雅,含有更多文字的美。

PHP服务器脚本

修改phpMyAdmin导入SQL文件的大小限制

检查php.ini配置文件中的三个地方
遇到导入过大文件时,首先检查php.ini 配置文件中的以下三个地方,upload_max_filesize, memory_limit 和post_max_size,并且推荐修改的值要稍大于导入的巨大sql数据库文件;依照这个提示,我修改了以上三个在php.ini中的值以后,重启 了php环境,再次导入时,虽然phpMyAdmin还是显示导入最大限制:20,480 KB,但巨大的80M数据库文件已经被成功的导入了。

C/C++编程语言

C语言中的struct和typedef struct

struct和typedef struct
typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。
136 / 139 首页 < Prev 134 135 136 137 138 Next > 尾页 页码: