作家
登录

带你了解数据结构的定义和简介

作者: 来源: 2017-12-12 13:54:16 阅读 我要评论

开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散

如许 p 就指向了第一个八个字节··· p+i 就指向了第 i+1 个八个字节,p[0],p[i]也就分别是第一个,第i+1个元素。

1. 概述

  1. typedef struct Student{ // 构造体定义  
  2. int age;  
  3. char * name 
  4. char name2[100];  
  5. double height;  
  6. }myStudent;  
  7. // 直接传递全部构造体数据,耗时 && 浪费内存空间  
  8. void func(struct Student st);  
  9. // 直接传递 只占用 4 byte 的指针,省时效力也高 <推荐用法>  
  10. void func2(struct Student * pst);  
  11. int main(void){  
  12. myStudent ss = {12,"xiaoyou",1.73};  
  13. func(ss);  
  14. func2(&ss);  
  15. return 0;  
  16.  
  17. void func(struct Student st){  
  18. printf("age = %d \n name = %s",st.age,st.name);  
  19.  
  20. void func2(struct Student * pst){  
  21. printf("age = %d \n name = %s",(*pst).age,(*pst).name);  
  22. printf("age = %d \n name = %s",pst->age,pst->name);  

数据构造定义:

构造体变量的类型为: struct Student

构造体变量不克不及加减乘除,然则可以或许互相赋值

数据构造的定义和简介

  • 数据构造 = 元素 + 元素的关系
  • 算法 = 对数据构造的操作

算法:

  • 算法就是:解决问题的办法和步调

衡量算法有如下标准:

  • 时光复杂度
  • 法度榜样要履行的次数,并非履行时光
  • 空间复杂度
  • 算法履行过程中大年夜概要占用的最大年夜内存
  • 难易程度(可读性)
  • 结实性

2. 数据构造的特点和地位

地位:

数据构造处于软件中核心的地位。

如计算机内存中栈和堆的差别,不懂数据构造的人可能会认为内存就是分两大年夜部分,一块叫栈,一块叫堆,显然这是异常肤浅且不精确的结论。

实际上如不雅一块内存是以压栈出栈的方法分派的内存,那么这块内存就叫栈内存,如不雅是以堆排序的方法分派的内存,那么这块内存就叫堆内存,其最根本的差别照样其内存分派算法的不合。

则 p + i 的值为 p + i * (p 所指向的变量所占字节数)

例如,函数的调用方法也是经由过程压栈出栈的方法来调用的,或者操作体系中多线迟疑作有队列的概念,队列用于包管多线程的操作次序,这也是数据构造琅绫擎的内容、或者计算机编译道理琅绫擎有语法树的概念,这实际上就是数据构造琅绫擎的树,比如软件工程、数据库之类都稀有据构造的影子。

特点:

  • 数据构造修炼的是内功,并不克不及直接立竿见影的可以解决实际问题,然则有了这门内功会在其他方面的进修中对你大年夜有益处。
  • 预告常识(C说话)

进修数据构造应当具备如下常识:

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)