数据结构绪论

一、什么是数据结构

1、数据结构的起源
  • 数据结构不是研究数值计算的这些是数学家应该研究的问题,它是研究计算机存储、组织数据的方式问题的学科,数据结构会影响算法的效率,合适的数据结构可以带来更高的运行或存储效率。

  • 1968年,美国的高纳德(Donald E. Knuth)教授《基本算法》,开创了数据结构课程体系的先河。

  • 程序设计 = 数据结构 + 算法

    • 凭借一句话获得图灵奖的Pascal之父——Nicklaus Wirth,让他获得图灵奖的这句话就是他提出的著名公式:“算法+数据结构=程序”。

    • 这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=MC^2”——一个公式展示出了程序的本质。

2、数据结构的基本概念

  • 数据(data):所有能输入到计算机中去的描述客观事物的符号
  • 数据项(data item):有独立含义的数据最小单位,也称域(field)
  • 数据元素(data element):数据结构的基本单位,也称节点(node)或记录(record)
  • 数据结构(data structure):数据元素和数据元素关系的集合
  • 算法(algorithm):是对特定问题求解步骤的一种描述,是指令的有限序列
#include <stdio.h>

typedef struct Student
{
    int id;         // 结构成员就是 数据项
    char name[20];
    char sex;
    short age;
    float score;
}Student;

int main(int argc,const char* argv[])
{
    Student stu = { // 结构变量 stu 是数据元素,负责给他初始化的叫数据
        10086,
        "hehe",
        'w',
        23,
        88.5
    };  

    // 数据结构
    Student stus[5] = { 
        {10010,"hehe1",'m',18,92},
        {10011,"hehe2",'w',18,91},
        {10012,"hehe3",'m',17,93},
        {10013,"hehe4",'w',18,96},
        {10014,"hehe5",'m',15,95},
    };  

    // 算法
    for(int i=0; i<5; i++)
    {   
        printf("%d %s %c %hd %g\n",
            stus[i].id,
            stus[i].name,
            stus[i].sex,
            stus[i].age,
            stus[i].score);
    }   
}

3、数据结构的三个方面

  • 数据的逻辑结构:元素之间具有什么关系。
  • 数据的存储结构:元素在内存中如何存储的。
  • 数据结构的运算:数据结构应具有的功能或擅长的功能。

二、数据元素之间的逻辑结构有四种基本类型

  • 集合:数据元素之间除了同属一个集合外没有其它关系。
  • 线性结构:数据元素之间存在一对一的关系,也被称为线性表,简称为表,最具代表性的就是数组、链表。
  • 树型结构:数据元素之间存在一对多的关系,如:族谱关系、组织关系。
  • 图状结构:数据元素之间存在多对多的关系,如:地铁、高铁线路图。

三、数据结构的存储方式

数据结构在计算机内存中的存储包括数据元素的存储和元素关系的表示。

元素之间的关系在计算机中有两种不同的表示方法,顺序表示和非顺序表示。

1、顺序存储结构

数据存储在一段连续的空间中,用数据元素在存储器中的相对位置来表示数据元素的关系。

  • 优点:随机访问方便,访问效率极高。

  • 缺点:插入删除不方便。

2、链式存储结构

结构中的数据元素存放在彼此独立的地址空间中,每个独立的地址空间称为节点。

在每一个数据元素中增加一个存放另一个元素地址的指针,用来表示数据元素之间的关系。

  • 优点:插入删除方便,空间利用率高。
  • 缺点:随机访问不方便,只能由前到后逐个访问。

四、逻辑结构和存储结构的关系

数据结构
顺序 顺序表 顺序树 矩阵
链式 链式表 链式树 邻接表(顺序+链式)

每种逻辑结构采用何种物理结构实现,并没有明确规定,通常根据实现的难易程度,以及在时间和空间方面的要求,选择最适合的物理结构,也不排除复合多种物理结构实现一种逻辑结构的可能。

五、数据结构的运算

  • 1、建立数据结构:create

  • 2、销毁数据结构:destroy

  • 3、从数据结构中删除一个元素:delete

  • 4、把一个元素插入到一个数据结构中:install

  • 5、访问数据结构中的元素:access

  • 6、修改数据结构中的元素:modify

  • 7、对数据结构中的元素进行排序:sort

  • 8、在数据结构中查找元素:query

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 1.1数据结构的研究内容: 计算机数值计算一般步骤:首先从具体问题抽象出数学模型——》然后设计一个解释此数学模...
    JerryTomLee阅读 331评论 0 0
  • 前言 2016年又是一个全新的开始,每到一年的这个时候,总是颇有感慨。想对过去的一年做一些总结,但又觉得经历和精力...
    VV木公子阅读 2,008评论 5 31
  • 注意:以下文字和图片大部分摘选自《大话数据结构》和严老的《数据结构 C语言》第二版 数据结构 数据结构研究的主要问...
    卖渔翁阅读 385评论 0 1
  • "磨棱角,褪优越,沉下心""不止于心动,更付诸于行动,执行力!“ 引言 开始并行学习一下数据结构,基础太重要了,非...
    那个混子阅读 344评论 0 1
  • 数据结构: 是相互之间存在一种或多种特定关系的数据元素的集合。 数据结构是一门研究 ----非数值计算的程序设计问...
    努力生活的西鱼阅读 537评论 0 0