自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晴时有风阴有雨的博客

C语言与图像处理

  • 博客(20)
  • 收藏
  • 关注

原创 Linux数据结构——静态顺序表(二)

获取顺序表中任意一个位置的数据SeqListType SeqListGet(SeqList* seqlist,size_t pos,SeqListType default_value){ if(seqlist == NULL){ return; } if(SeqList->size == 0){ return; ...

2018-05-04 11:04:44 154

原创 Linux数据结构——静态顺序表(一)

顺序表:用一段地址连续的存储单元依次存储数据元素的线性结构。地址连续的空间,一般情况下采用数组,但数组有静态数组和动态数组,所以顺序表分为:静态顺序表和动态顺序表。定义一个结构体顺序存放数据。#define MAX_SIZE 1000 typedef char SeqListType; typedef struct SeqListList{ SeqListType da...

2018-05-04 10:46:00 168

原创 Linux数据结构——迷宫(多条出路且带环)

                                  左边是原始迷宫图,右边将其所有路径进行了标记,发现有3个出口,并且中间带环。这就是一个多条出路且带环的迷宫图。如何找到它的最短路径呢?首先对这个迷宫初始化void MazeInitShortPathWithCycle(Maze* maze) { if (maze == NULL) return; i...

2018-04-30 22:13:15 293

原创 Linux数据结构——迷宫(多条出口且不带环)

之前有说过一条简单的迷宫之路求解(只有一条出路且不带环)这一篇讲的是如何处理多条出路的情况。主要思路:借用两个栈,一个保存当前出路的路径点,一个保存最短的出路的路径点。每找到一条出路则对比最短出路,哪一条路短,则存到最短路径栈中。首先我们先初始化一个栈:void MazeInitShortPath(Maze* maze) { if (maze == NULL) return...

2018-04-30 21:33:26 223

原创 Linux数据结构——双向链表2(带头节点)

上一篇讲到了双链表的基本操作(头删头插尾删尾插)这一篇讲讲双向链表的其他操作一.查找一个数据DLinkNode* DLinkListFind(DLinkNode* head, DLinkType to_find) { if (head == NULL) return NULL; if (head->next == head) return N...

2018-04-30 20:53:23 119

原创 Linux数据结构——双向链表1(带头结点)

先来一个简易图描述下双向链表这是一个带头节点的双向链表,跟单向链表不一样的是,它可以双向链接。相对于单向链表来说,它向前访问某个数据就容易多了。实现一个双向链接1。结构体定义typedef char DLinkType; typedef struct DLinkNode { DLinkType data; struct DLinkNode* next; struct DLinkNode...

2018-04-30 20:29:35 336

原创 Linux数据结构——队列(顺序表实现)

首先我们要理解队列所遵循的规则就是“先进先出”。我们可以看到生活中排队的例子(如:排队买票、排队打饭)其实就是一个队列。如同栈一样,为了保证队列的安全性,我们对队列的操作也只有三种:入队列、出队列、取队首元素。这篇文章主要是用数组来实现一个队列,为了使队列的空间能充分利用,所以用线性队列来模拟环形队列来实现。#define SeqQueueMaxSize 1000 typedef char Seq...

2018-04-25 11:03:45 527

原创 Linux数据结构——栈(用顺序表实现)

用顺序表实现的栈和顺序表有什么区别呢?我们先来分析下它们的结构体顺序表:typedef char SeqListType; typedef struct SeqStack{ SeqListType data[MAZ_SIZE]; size_t size; }MAX_SIZE是这个顺序表最多能容纳的数据size为当前的元素的个数栈:typedef char SeqStackType...

2018-04-20 10:47:02 202

原创 Linux数据结构——迷宫(只有一条出路且不带环)

假设有个这样的迷宫: 用0表示墙,1表示路。 此时这个迷宫只有一条通路。并且路径不带环。 方法:迷宫用二维数组表示,递归调用系统栈空间。 思路如下: 寻找路径的函数为我们递归的函数。 从入口出发,我们按顺时针(上右下左)依次检查是否有路可走。 找到可走的路,将其标记为2。 每调用一次函数,系统为其开辟栈空间。假设我们走到第3行第5列这一点,此时已经没有路了,则需要往回走,我

2018-04-17 22:46:13 508

原创 Linux之链表(二)——查找、任意位置的增删、求链表长度等。

上一篇已经讲过链表的初始化、头插头删、尾插尾删等工作。这一篇主要讲链表的任意位置的增删查改。一:给定一个值,在链表中找到它的位置113 LinkNode* LinkListFind(LinkNode* head, LinkNodeType to_find) 114 { 115 //find a value 116 if(head == NULL) 117 ...

2018-04-10 11:27:55 445

原创 Linux之链表(一)——初始化、头插、尾插、头删、尾删

在我们实现初始化、头插、尾插、头删、尾删要先做哪些工作呢?首先我们要vim 两个文件Linklist.h Linklist.c。在h文件中写入函数名、结构体等,真正实现的代码在c文件中实现。1.创建节点的结构体 typedef char LinkNodeType; 5 typedef struct LinkNode ...

2018-04-02 16:54:14 900 1

原创 Linux su和sudo的区别

首先通过man 对两条命令查看man suSU(1)                            User Commands                           SU(1)                                    用户命令NAME       su - run a shell with substitute user and group ID...

2018-03-22 16:29:42 362

原创 Linux的根目录文件+man帮助手册

bin:系统最基础的命令。比如 ls、cp、mkdir等。这个目录中的文件都是可执行的,普通用户都可以使用的命令。boot:启动系统的核心文件。dev:系统的设备文件,即设备的驱动程序。etc:系统的配置文件。home:是用户的的工作目录,一打开终端,就进入home文件夹中。lib:存放库文件。lost+found:存放系统非正常关机产生的文件。media:可拆卸的媒介挂载点,如移动硬盘、U盘等。...

2018-02-25 15:58:14 295

原创 指针、数组、函数这三个词语混搭浅析

1.指针与数组 指针是指针、数组是数组,它们之间没有一点关系。 指针就是地址,在32位平台下,永远是4个字节;数组就是数组,是同类型的元素的集合。 2.指针数组与数组指针 我们先来看两个例子: int *p[5]; int (*p)[5]; 我们怎么区分上面两个变量到底是数组指针还是指针数组呢? 答案:优先级 我们可以通过看变量名p,变量P先跟谁结合就是什么。 [ ]的优先级高

2017-12-26 15:08:42 506

原创 栈帧——函数调用,变量在内存中如何存取

首先我们先要搞懂程序的地址空间是怎样的。 堆区和栈区相对生长,而我们的变量是存在栈区,接下来我们就要对程序运行时的栈区进行讨论。 用以下程序为例: #include #include int add(int a,int b) { int z=a+b; return z; } int main() { int a=1; int b=1; int z=add(a,b)

2017-12-07 17:10:45 1628 2

原创 二维数组的初始化与内存存放关系。

一.初始化 可以没有行数,但一定要有列数; int arr[ ][10]={{1,2},{3,4}} 分配的空间不能为0; 可以对部分元素赋值,根据下标而设定的空间,其余没有赋值的则默认为0; 可以为整形、字符型、指针型。 二.存放关系 我们理解的二维数组是矩阵的关系,但它实际上在内存中是连续存放的。

2017-11-23 11:38:50 641

原创 C语言操作符整理

按优先级进行整理: 第一优先级: (  )   [    ]    下标引用    例如一个数组arr[10],表达的是数组arr中第10个元素。     ->    指向结构体成员     .      访问结构体成员 第二优先级: !    逻辑非 ~   按位取反 ++自增 --自减 -负值 (类型)强制类型转换 *指针 &取地址 sizeof求变量或类型(

2017-11-16 10:00:57 810

原创 求10个数中的最大值。

我的思路:先设定一个最大值max,然后依次比较数组内每个元素的值,更新max。 先贴出我的代码: #include int main() { int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; int max = 0; int i= 0; for (i = 0; i < 10; i++) { if (max<arr[i]) max

2017-11-12 10:29:46 1037

原创 Visual studio输出结果闪现,如何观察结果的解决办法

2013版本的基本上看不到输出结果。 第一种办法: 在程序的最末端加上system("pause"); 通过系统命令来停止。 PS:记得加上system的头文件哦。 第二种办法: 在程序末端加上getchar( ); 就是说当程序再获取到一个字符,程序才结束。 但这个函数不是万能的。 比如以下程序: int main() { char passwd[10] = {0}

2017-11-05 22:09:25 3984

原创 C语言入门细节整理

新建了一个博客,把自己所学所感在此记录,希望在这里能看到自己的进步。 字、字节、位的关系 1字=2字节=16位 1word=2byte=16bit shutdown -s -t 60 60秒后关闭计算机。-s是关闭计算机命令,-t是延长时间,60代表60S shutdown -a  计划被取消。 异或 是按位进行。符号 ^ a^b的结果再与b异或,则结果为a 0

2017-11-04 10:49:24 187

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除