Linux
文章平均质量分 77
晴时有风阴有雨
无无无
展开
-
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 · 360 阅读 · 0 评论 -
Linux数据结构——静态顺序表(一)
顺序表:用一段地址连续的存储单元依次存储数据元素的线性结构。地址连续的空间,一般情况下采用数组,但数组有静态数组和动态数组,所以顺序表分为:静态顺序表和动态顺序表。定义一个结构体顺序存放数据。#define MAX_SIZE 1000 typedef char SeqListType; typedef struct SeqListList{ SeqListType da...原创 2018-05-04 10:46:00 · 167 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Linux数据结构——队列(顺序表实现)
首先我们要理解队列所遵循的规则就是“先进先出”。我们可以看到生活中排队的例子(如:排队买票、排队打饭)其实就是一个队列。如同栈一样,为了保证队列的安全性,我们对队列的操作也只有三种:入队列、出队列、取队首元素。这篇文章主要是用数组来实现一个队列,为了使队列的空间能充分利用,所以用线性队列来模拟环形队列来实现。#define SeqQueueMaxSize 1000 typedef char Seq...原创 2018-04-25 11:03:45 · 527 阅读 · 0 评论 -
Linux数据结构——迷宫(多条出路且带环)
左边是原始迷宫图,右边将其所有路径进行了标记,发现有3个出口,并且中间带环。这就是一个多条出路且带环的迷宫图。如何找到它的最短路径呢?首先对这个迷宫初始化void MazeInitShortPathWithCycle(Maze* maze) { if (maze == NULL) return; i...原创 2018-04-30 22:13:15 · 293 阅读 · 0 评论 -
Linux数据结构——迷宫(多条出口且不带环)
之前有说过一条简单的迷宫之路求解(只有一条出路且不带环)这一篇讲的是如何处理多条出路的情况。主要思路:借用两个栈,一个保存当前出路的路径点,一个保存最短的出路的路径点。每找到一条出路则对比最短出路,哪一条路短,则存到最短路径栈中。首先我们先初始化一个栈:void MazeInitShortPath(Maze* maze) { if (maze == NULL) return...原创 2018-04-30 21:33:26 · 223 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Linux数据结构——双向链表1(带头结点)
先来一个简易图描述下双向链表这是一个带头节点的双向链表,跟单向链表不一样的是,它可以双向链接。相对于单向链表来说,它向前访问某个数据就容易多了。实现一个双向链接1。结构体定义typedef char DLinkType; typedef struct DLinkNode { DLinkType data; struct DLinkNode* next; struct DLinkNode...原创 2018-04-30 20:29:35 · 333 阅读 · 0 评论 -
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 阅读 · 0 评论 -
Linux之链表(一)——初始化、头插、尾插、头删、尾删
在我们实现初始化、头插、尾插、头删、尾删要先做哪些工作呢?首先我们要vim 两个文件Linklist.h Linklist.c。在h文件中写入函数名、结构体等,真正实现的代码在c文件中实现。1.创建节点的结构体 typedef char LinkNodeType; 5 typedef struct LinkNode ...原创 2018-04-02 16:54:14 · 899 阅读 · 1 评论 -
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 阅读 · 0 评论