数据结构与算法
文章平均质量分 59
飞鹰51
一枚立志做技术男的小人物
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
单链表的创建、遍历、测长、插入、删除、访问、排序、逆序
马上要找工作了,最近把数据结构复习了一下,从单链表开始,一点一点巩固。解析的内容太长就省了,直接贴出代码,需要说明的一点是,下面创建的单链表以及相关操作都是带头结点的。typedef struct node { int data; struct node *next;}Node,*PNode;PNode createList(int n){ int value; PNode p原创 2017-07-27 15:03:39 · 641 阅读 · 0 评论 -
循环链表解决约瑟夫环问题
约瑟夫环问题,已知n个人,从编号为k的人开始报数,数到m的那个人出列;他的下一个又从1开始报数, 数到m的那个人又出列,依此重复,直到所有的人出列。思路如下:(1)建立一个具有n个结点、无头结点的循环链表。(2)确定第一个报数人的位置(3)不断地从链表中删除结点,直到链表为空。typedef struct node { int num; struct node *next;}原创 2017-07-29 18:19:34 · 898 阅读 · 0 评论 -
队列的入队、出队操作
队列的常用操作就是入队和出队,这里入队用函数insert实现,出队用函数del实现,print函数实现队列的遍历做操:#include #include #include #include using namespace std;typedef struct node { int data; struct node *next;}Node, *PNode;typedef原创 2017-08-08 13:38:00 · 5023 阅读 · 0 评论 -
双链表的创建、遍历、测长、插入、删除、销毁
今天把双链表复习了一遍,双链表主要是插入和删除的 操作,两个操作的示意图如下 链表的插入原创 2017-07-28 17:10:47 · 1132 阅读 · 0 评论 -
栈的出栈、入栈、遍历、清空操作
#include #include typedef struct node { int data; struct node *next;}Node ,*PNode;typedef struct stack { PNode pTop; PNode pBot;}Stack, *PStack;void init(PStack pS){ pS->pTop = pS->pBot原创 2017-08-08 15:28:16 · 1738 阅读 · 0 评论 -
希尔排序的C语言实现
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。先取一个小于n的整数d1作为第一个增量,把文原创 2017-08-10 17:31:13 · 719 阅读 · 0 评论 -
快速排序算法的C语言实现
快速排序算法的解析看这篇博客,是我见过的最好的了:http://blog.youkuaiyun.com/morewindows/article/details/6684558#include#includevoid quickSort(int arr[], int low, int high){ int i, j, key; if (low < high) { i = low; j转载 2017-08-10 15:34:55 · 305 阅读 · 0 评论 -
strcpy函数的实现,考虑内存重叠情况
这里贴出strcpy函数的简单实现,其中考虑内存重叠情况的是函数是mystrcpy2,但是单传递内存重叠的实参的时候运行总是出错,网上的代码基本都是这样实现的,不知道别人运行的时候有没有出错#include #include #include #include //这种实现如果遇到内存重叠就会出错,如mystrcpy(Src+1,Src);'\0'由于被覆盖导致出现死循环char原创 2017-08-12 09:24:36 · 1374 阅读 · 1 评论
分享