数据结构与算法
零一2035
为自己加油!!
展开
-
数据结构的概念
数据结构课程主要讲解如何使用存储区解决 复杂问题算法课程讲解解决常见固定问题的思路数据结构关注程序中不同数字之间的关系同样一组数据之间的关系可以从两个不同的角度 去描述一个角度描述数据之间在人们的头脑中形成的关系, 这种关系叫逻辑结构。这种关系和计算机完全无关。另一个角度描述存放数据的存储区之间的关系,这个 关系叫物理结构。这转载 2016-07-28 09:47:18 · 205 阅读 · 0 评论 -
算法2
算法一,为什么需要算法1.很多问题人类的解决方法并不适合由机器完成,因此需要专门为机器设计一些特殊的方法,解决实际问题2.计算方法数值计算:微积分,解方程,统计和随机信号分析,等等非数值计算:排序,搜索 ,调度,归并,拆分,优化,等等3.学习目标1)将一个实际问题变成机器可以解决的问题。2)用程序设计语言来实现算法。二,搜索算法1.线性搜索1)从头开始依转载 2016-08-02 13:44:31 · 352 阅读 · 0 评论 -
双向链表
#ifndef __03LINK_H__#define __03LINK_H__//分配存储区的函数void link_init();//释放存储区的函数void link_deinit();//在链的开头插入新数字void insert_head(int );//删除最前边的数字void remove_head();//获得第一个数字的函数in转载 2016-08-02 14:13:24 · 160 阅读 · 0 评论 -
常见算法的实现
#include // 线性搜索 size_t line_find (int data[], size_t size, int key) { size_t i; for (i = 0; i if (data[i] == key) return i; return -1;}// 二分搜索size_t half_find (int转载 2016-08-02 15:14:10 · 258 阅读 · 0 评论 -
链表1
链表也是一种数据,可以把链表看作是对链式 物理结构进行管理的工具链表中通常包含一个链式物理结构以及对它们进行 管理的函数使用链表可以把对链式物理结构进行管理的功能 和其他功能区分开,这就可以降低开发的难度链表基本功能包括插入,删除和遍历遍历功能可以按顺序依次使用链式物理结构中每个 数字只能沿着一个方向遍历的链表叫单向链表原创 2016-07-13 17:22:20 · 239 阅读 · 0 评论 -
单项链表之创建
#include #include #include struct node {int num;struct node *next;};struct node *create(int n){int i;struct node *head=NULL;struct node *mid,*tail;for(i=n;i>0;i--){原创 2017-08-01 15:31:35 · 195 阅读 · 0 评论 -
单项链表的删除指定节点
#include #include #include struct node{ int id; struct node *next;};struct node *head=NULL;struct node *tail=NULL;struct node *first,*tmp,*last;struct原创 2017-08-02 15:01:49 · 475 阅读 · 0 评论 -
单项链表插入指定数据
#include #include #include struct node{ int id; struct node *next;};struct node *head=NULL;struct node *tail=NULL;struct node *first,*tmp,*last;struct原创 2017-08-02 15:43:08 · 235 阅读 · 0 评论 -
使用栈实现一个任意进制转换器
#include #include #include typedef struct{ int *top; int *base; int stack_size;}stack;void init(stack *s){ s->base=(int *)malloc(100*sizeof(原创 2017-08-03 13:53:00 · 1052 阅读 · 0 评论 -
常见的算法
思考:有一个链表,给定其中某一个节点的指针,判断该链表是线性还是环形链表二叉树1.二叉树是树形结构的最间模型,每个节点最多只有两个子节点2.每个子节点最多只有一个父节点,整颗数只有一个根节点。3.二叉树具有递归的结构特征,因此用递归的方法解决二叉树问题,往往可以使算法简化4.三种遍历序1)前序遍历:D-L-R2)中序遍历:L-D-R3)后序遍历:L-R-转载 2016-08-02 13:33:52 · 212 阅读 · 0 评论 -
消息队列-链表实现
#ifndef __01QUEUE_H__#define __01QUEUE_H__//分配动态存储区的函数void queue_init();//释放动态存储区的函数void queue_deinit();//判断队列是否满的函数int queue_full();//判断队列是否空的函数int queue_empty();//统计队列中数字个数转载 2016-08-01 17:25:56 · 1694 阅读 · 0 评论 -
单双向链表
链表也是一种数据,可以把链表看作是对链式 物理结构进行管理的工具链表中通常包含一个链式物理结构以及对它们进行 管理的函数使用链表可以把对链式物理结构进行管理的功能 和其他功能区分开,这就可以降低开发的难度链表基本功能包括插入,删除和遍历遍历功能可以按顺序依次使用链式物理结构中每个 数字只能沿着一个方向遍历的链表叫单向链表转载 2016-08-01 14:24:15 · 213 阅读 · 0 评论 -
顺序结构演示案例
/* 顺序存储结构演示 */#include int main() {int arr[10] = {1, 2, 4, 5, 6, 7, 8, 9, 10, 11}, num = 0, flag = 0; for (num = 9;num >= 0;num--) {if (arr[num] > 3) {if (num arr[num + 1] = a转载 2016-07-28 09:59:52 · 1489 阅读 · 0 评论 -
链式物理结构演示
/* 链式物理结构演示 */#include typedef struct node {int num;struct node *p_next;} node;int main() {//int num = 1, num1 = 2, num2 = 3;node node1 = {1, NULL}, node2 = {2, NULL}, node3 =转载 2016-07-28 10:05:12 · 252 阅读 · 0 评论 -
链式物理结构2
/* 链式物理结构演示 */#include typedef struct node {int num; struct node *p_next;} node;int main() {node node1 = {1, NULL}, node2 = {2, NULL}, node3 = {3, NULL}, node4 = {4, NULL};n转载 2016-07-28 13:14:53 · 246 阅读 · 0 评论 -
链式物理结构3
/* 链式存储结构练习 */#include #include typedef struct node {int num;struct node *p_next;} node;static node head, tail;int main() {node *p_node = NULL, *p_tmp = NULL; head.p_nex转载 2016-07-28 14:19:04 · 202 阅读 · 0 评论 -
链式物理结构4
/* 链式物理结构练习 */#include #include typedef struct node {int num; struct node *p_next;} node;static node head, tail;int main() { int num = 0;node *p_node = NULL;head.p_转载 2016-07-28 15:48:03 · 264 阅读 · 0 评论 -
数据结构的定义
逻辑结构和物理结构之间没有明确的对应关系,一个逻辑结构可以采用多种物理结构实现同样一个物理结构也可以用来实现多个逻辑结构数据结构可以看成是一组相关数字的某种使用 方式数据结构包含一组存储区以及与它们相关的 函数,这组函数分别以不同的方式使用这组存储区只有数据结构中包括的函数才可以直接操作 数据结构中的存储区数据结构中的函转载 2016-07-29 11:32:50 · 413 阅读 · 0 评论 -
栈的演示1.
#ifndef __01STACK_H__#define __01STACK_H__//分配栈里所使用的存储区void stack_init();//释放栈里所使用的存储区void stack_deinit();//判断是否栈已经被填满int stack_full();//判断栈里是否没有数字int stack_empty();//计算栈里包含的数字个数转载 2016-07-29 13:46:53 · 521 阅读 · 0 评论 -
队列演示1.
#ifndef __03QUEUE_H__#define __03QUEUE_H__//分配动态存储区的函数void queue_init();//释放动态存储区的函数void queue_deinit();//判断队列是否满的函数int queue_full();//判断队列是否空的函数int queue_empty();//统计队列中数字个数转载 2016-07-29 14:19:55 · 288 阅读 · 0 评论 -
单项链表编程
单向链表编程思路:1.创建一个链表,大小自定义2.打印链表内容3.删除指定节点4.插入节点5.释放链表#include #include #include typedef int datatype;typedef struct node{ datatype data; struct node原创 2017-08-04 14:40:45 · 250 阅读 · 0 评论