您的位置:首页 > 理论基础 > 数据结构算法

数据结构学习篇(一)---大纲、简介、作用

2014-08-20 06:12 127 查看
数据结构的概述

01.02.03课程

预备知识:

模块一:线性结构

连续存储(数组)

离散存储(链表)

线性结构的两种常见应用之一:栈

线性结构的两种常见应用之二:队列

专题:递归

1. 1+2+3+......+100的和

2. 求阶乘

3. 3.汉诺塔

4. 走迷宫

模块二:非线性结构





模块三:查找和排序

排序:冒泡、插入、选择、快速、归并排序

补充:

java中的容器和数据结构的相关知识.

Iterator 接口

Map 哈希表

书籍推荐:

严蔚敏、吴伟明 《数据结构》---伪算法

高一凡 --西电

黄国瑜

数据结构

定义:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能而执行相应的操作,这个相应的操作也叫做算法。

数据要怎么去存?---数据结构所研究的问题

怎么去操作数据?---算法

数据结构=个体+个体的关系

算法=对存储数据的操作

算法:解题的方法和步骤.

衡量算法的标准:

1. 时间复杂度

大概程序要执行的次数,而非执行的时间

2. 空间复杂度

算法执行过程中大概所占用的最大内存

3. 难易程度

4. 健壮性

数据结构的地位

数据结构是软件中最核心的内容

数据库 字段 --属性

记录
--一个事务

表 --事务的集合

程序 =
数据的存储+数据的操作+可以被计算机执行的语言

学完此课程,你会发现你什么都干不了,并且这门课程很难,很重要。它可以促进我们对其他课程的学习,慢慢的发酵。

04.05.06课程

预备知识

指针是C语言的灵魂

地址:内存单元的编号,从0开始的非负整数,0-FFFFFFFF.

指针就是地址,地址就是指针。

[cpp]
view plaincopyprint?

void show_array(int *p,int len)

{
p[2]=-1;
}
int main(void)
{
int a[5]={1,2,3,4,5};
show_array(a,5);
printf(“%d\n”,a[2]);
return 0;
}
a[2]的值已经改变了,变成了-1.改变的是地址。
p[2]==*(p+2)==*(a+2)==a[2]
p[0]==*(p+0)==*p
如果要循环遍历数组
void show_array(int *p,int len)

{
for(i=0; i<len; i++)
{
printf(“%d\n”,p[i]);
}
}

void show_array(int *p, int len)
{
p[2]=-1;
}
int main(void)
{
int a[5]={1,2,3,4,5};
show_array(a,5);
printf(“%d\n”,a[2]);
return 0;
}
a[2]的值已经改变了,变成了-1.改变的是地址。
p[2]==*(p+2)==*(a+2)==a[2]
p[0]==*(p+0)==*p
如果要循环遍历数组
void show_array(int *p, int len)
{
for(i=0; i<len; i++)
{
printf(“%d\n”,p[i]);
}
}


06.07.08课程

结构体--是数据类型,只有属性,没有方法。

struct Student

{

//属性

};

分号不能省略。

为什么会出现结构体?

为了表示一些复杂的数据而普通的基本类型变量已经无法满足要求。

什么叫结构体?

结构体是用户根据实际需要自己定义的复合数据类型。

如何使用结构体:

struct Student

{

int id;

String name;

int age;

};

struct Student st ={1000, ”zhangsan”, 20};

struct Student *s = &st;

st.id = s->id;

s->name=”lisi”;

s->id ==>(*s).id ==>st.id;

09.10课程

动态分配内存的概述
malloc()

跨函数使用内存

java中 A a = new A();

C中 A *a = (A *) malloc(sizeof(A));

[cpp]
view plaincopyprint?

#include<stdio.h>

#include<malloc.h>

struct Student
{
int id;
int age;
};

struct Student *createStudent(void);
void showStudent(struct Student *);

int main(void)
{
struct Student *s;

s = createStudent();
showStudent(s);

return 0;
}

struct Student* createStudent(void)
{
struct Student * s = (struct Student *) malloc(sizeof(struct Student));
s->id=10000;
s->age=20;
return s;
}

void showStudent(struct Student*)
{
printf(“%d %d\n”,s->id, s->age);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: