自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构——使用非递归方法后序遍历二叉树

使用扩展先序遍历二叉树来进行二叉树的创建,使用非递归方法遍历二叉树,并且不同于书上使用的顺序栈,这里采用链栈,与顺序栈的不同是不能将NULL压栈,因此算法较复杂一些,是一次尝试。C语言代码:#include <stdio.h>#include <malloc.h>#include <stdlib.h>//定义二叉树 typedef struct BinaryTree{ char dat

2017-11-03 15:05:09 600

原创 数据结构——循环队列的简单实现

采用顺序存储方式,存储容量要比逻辑上的容量多一个,以此方便判断队空还是队满。采用尾进头出的模式,来达到先进先出的目的。操作简单描述如下:队尾指针是rear,队头是front,其中QueueSize为循环队列的最大长度。1.队空条件:rear==front。 2.队满条件:(rear+1) %QueueSIze==front。 3.计算队列长度:(rear-front+QueueSize)%Que

2017-10-13 12:21:17 600

原创 简单算法——使用栈实现括号匹配检验

设计一个算法判定一个算术表达式中的括号是否正确配对(包括三种括号并且需要考虑大中小三种括号的嵌套顺序), 并将对应的程序调试运行通过。 算法思想:暂不考虑数据元素的运算,只考虑括号的配对。则有两个概念:对右括号期待的急迫程度和当前括号的优先级。因此前者的特点符合栈的特点,即后遍历到的括号,急迫程度越强。因此使用一个栈来存储遍历到的括号,遇到左括号则入栈,遇到右括号,如果匹配当前左括号则出栈,如果不匹

2017-10-13 10:20:47 9968 3

原创 数据结构——非循环带头结点单链表的递归方法逆置

与循环单链表相比,非循环带头结点单链表的逆置有一个难以处理的点是头结点的处理。#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node{ int data; Node *next;}Node,*PNode;//节点 typedef struct List{ PNode hea

2017-09-22 15:14:01 1894

原创 数据结构——双循环链表一部分功能的C语言实现

#include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node{ int data; Node *next; Node *last;}Node,*PNode;//节点 typedef struct List{ PNode head; PNode tail; i

2017-09-22 10:43:20 441

原创 数据结构——单循环链表的逆置

将带头节点的单循环链表逆置方法一:普通循环方法,通俗的讲,只要把每一个结点指向它本来的前一个即可,就像是直接改变了链表概念图中箭头的方向,这一方法就是使用普通的循环打成这个过程。C语言代码实现:void reverseList(PList x){ if(x->head!=x->tail&&x->head->next!=x->tail){ PNode p=x->head;

2017-09-22 10:19:37 3963

原创 数据结构——单循环链表一部分功能的C语言实现

单循环链表主要好处在于方便插入删除结点,适用于动态性比较强的数据结构;缺点是每一个结点只能通过上一个结点来访问,随机访问不方便。//数据结构:单循环链表 #include <stdio.h>#include <malloc.h>#include <stdlib.h>typedef struct Node{ int data; Node *next;}Node,*PNode;

2017-09-20 13:36:06 467

原创 数据结构——顺序表的几个重要方法的C语言实现

//数据结构:顺序表 #include <stdio.h>#include <malloc.h>#include <stdlib.h>#define INITSIZE 100#define ADDSIZE 10typedef struct SqList{ int *addr; int length; int size;}SqList;void initList(S

2017-09-18 22:36:04 679

原创 算法——大数加法

将两个无法使用基本数据类型存储的大数进行加法运算。基本思路:使用字符串类型进行输入输出,处理时将其每一位转换成int类型,进行加减和进位。C语言实现:这个是自己编完,根据网上的其他代码进行了一些修改删减得出的代码。个人认为相比网上的一些代码,更具有可读性和实用性,还是比较值得记录的。#include <stdio.h>#include <string.h>#define MAXSIZE 10

2017-09-17 17:46:27 840

原创 算法——快速排序

基本思想:通过一趟快速排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。每一趟排序中,都确定一个基准数,把比它小的都放左边,比它大的放右边,这个过程的算法可以结合其他算法,本文中举出了以下两个例子。快速排序的时间复杂度一般为:O(nlogn),最坏的情况是O(

2017-09-17 11:21:15 302

原创 算法——使用递归解决组合问题

从n个数中取m个数,打印所有可能的结果。思想:把一个大问题分解成很多小问题。先从n个数中取一个,再从取出的这个数序列后面的数中取一个,再从新取出的这个数的序列后面的数中取一个,以此类推,直到只用取一个数,那么只要从剩下的序列中依次取结果就可以了。简单的讲,就是我们高中数学写全组合的次序方法,例如取3个数,就先确定前两个数不变,最后一个依次取序列中的数,取完后再变第2个数,最后都取完后改变第1个数。距

2017-09-16 21:14:12 2082

原创 简单算法——一维数组的循环左移

给定一个有n个元素的数组,使其整体左移m位(m#include <stdio.h>#include <malloc.h>#include <stdlib.h>int main(){ int m=0,n=0,i=0,e=0; printf("请输入序列长度:"); scanf("%d",&n); //定义数组并赋值 int *arr=(int*)malloc

2017-09-16 16:28:08 4368 1

原创 数据结构——时间/空间复杂度

1、算法是指令的有穷序列。5个特征:有穷性,确定性,可行性,输入,输出。4个要求:正确性,可读性,健壮性,效率与低存储量。算法评价:事后统计方法,事前分析估算(时间/空间复杂度)。2、渐进时间复杂度T(n)=O(f(n))渐进时间复杂度衡量的是一个算法基本操作执行次数的数量级,而不是单纯地比较程序运行时间的长短。其真实意义应该是:是如果问题规模(n)趋向于无穷大,比较算法执行时间长短。因此,计

2017-09-16 15:25:34 491

原创 数据结构——基本常识

1、数据结构分为逻辑结构和存储结构。存储结构是逻辑结构的计算机语言表达,而不是指数据元素的存储方式。常见的逻辑结构有:集合,线性,树,图。存储结构有:顺序,链接,索引,散列。数据结构研究的一般为非数值运算:查找,排序,插入,删除,修改和遍历。2、基本术语:数据元素:构成数据结构的基本单位。为一个结点。数据对象:具有相同性质的数据元素的集合。数据项/数据域:构成数据结构的最小单位。数据结构:数据元素及

2017-09-16 14:50:14 387

原创 计算机网络基本常识

1、历史阶段简述1)联机系统阶段(电传打字机),一个计算机处理中心,连接多个终端。2)计算机-计算机网络阶段(ARPANET),多个计算机处理中心,美国分组交换网(APRANET)标志着进入这个时代。3)标准化网络阶段。ISO制订了OSI,包含一系列计算机网络标准。4)网络互联与高速网络阶段。以Internet为核心的高速网络。2、计算机网络协议规定了计算机通信的一系列规则。有语法,语义,同步三个

2017-09-16 13:56:53 748

原创 SQL数据库入门(一)

SQL数据库入门(一)1、数据库的三级模式:从数据库的管理系统角度来看(即DBS内部软件结构),是三级模式结构。模式,即对于DB(数据库)结构极其特征、联系的描述,一般使用DDL语言来进行。模式和模型是不同的,模式是模型的语言描述。三级模式,即使用三种角度来描述一个DB。这种模式保证了一个DB的数据独立性,不仅是在逻辑上的独立性,更是在物理上的独立性。第一级模式为外模式:即描述一个DB的逻辑结

2017-09-16 10:57:46 570

C++ 正则文法定义-正则表达式-NFA-DFA-最小化DFA-字符串匹配DFA

内涵C++源码,UML类图,算法思想文档。内容主要包括:自定义正则文法(在ProgramManager类中自定义),根据正则文法和输入的正则表达式构建NFA,NFA自动构建DFA,DFA最小化,DFA匹配字符串。其中含有大量的中文注释,并提供了测试方法。本人还是学生,希望各位大神多多指点。

2018-10-06

空空如也

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

TA关注的人

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