数据结构学习笔记Day1(连载中)

数据结构概述

(1)数据结构定义

侠义的定义:

        数据结构是专门研究数据存储的问题;
        数据的存储包含两方面个体的存储 + 个体关系的存储。

广义的定义:

        数据结构既包含数据的存储也包含数据的操作
        对数据存储操作就是算法

(2)算法——对数据的操作

通俗定义:解题的方法和步骤;

狭义定义

        对存储数据的操作; 对不同存储结构,要完成某一个功能所执行的操作不一样的。

广义定义广义的算法也叫做泛型(无论数据是如何存储的,对数据的操作都一样)。

泛型

        利用某种技术达到的效果:不同的存储方式执行的操作一样的。

综上:

狭义的算法是与数据的存储方式密切相关 广义的算法是与数据的存储方式无关(这就是泛型思想)

(3)数据的存储结构有几种

①线性

连续存储(数组)

        优点:存储速度很快;

        缺点:事先必须知道数组的长度,插入删除元素很,空间通常是有限制的,需要大块连续的内存块

离散存储(链表)

        优点:插入删除元素效率高不需要一个连续的很大的内存;

        缺点查找某个位置的元素效率低

线性结构的应用——

线性结构的应用——队列

②非线性

       

       

(4)预备知识——typedef关键字

示例1:

   #include <stdio.h>
    
    typedef int ZHANGSAN;	//为int重新多取一个名字,ZHANGSAN等价于int
    
    int main(void)
    {
    	int i = 10;	//等价于 ZHANGSAN = 10;
    	ZHANGSAN j = 20;
    	printf("%d %d", i, j); 
    	
    	return 0;
    }

输出结果:10     20

示例2:

 #include <stdio.h>
    
    typedef int ZHANGSAN;	//为int重新多取一个名字,ZHANGSAN等价于int
    
    typedef struct Student
    {
    	int sid;
    	char name[100];
    	char sex;
    }ST;
    
    int main(void)
    {
    	//struct Student std;	//等价于 ST std;
    	//struct Student * ps = &std;	//等价于 ST * ps = &std; 
    	//两种方式都可以写 
    	ST std;
    	std.sid = 90;
    	printf("%d", std.sid); 
    	
    	return 0;
    }

输出结果:90

示例3:

 #include <stdio.h>
    
    typedef struct Student
    {
    	int sid;
    	char name[100];
    	char sex;
    }* PSTU, STU;	//等价于STU代表了struct Student类型,PSTU代表了struct Student * 类型 
    
    int main(void)
    {
    	STU st;	//等价于struct Student st; 
    	PSTU ps = &st;	//等价于struct Student * ps = &st; 
    	ps->sid = 90;
    	printf("%d", ps->sid);
    	
    	return 0;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值