排序:
默认
按更新时间
按访问量

数据结构中的串

C语言中有个字符串,数据结构中有个串,联系是二者都是存储字符的,区别在于前者我们直接定义数组存储,以\0结尾,如 char str[size]; 而后者我们是把字符串看成一个线性表,定义成结构体形式,结尾用length控制,可以用链表,也可以是顺序表,以下是顺序表定义:如 typedef...

2018-12-08 12:10:20

阅读数:17

评论数:0

判断后缀表达式正确性,并把后缀表达式转为前缀表达式

转载自:weixin_41133154 https://me.csdn.net/weixin_41133154 指针从最后边扫描起,遇到操作符则存入栈中并且从表达式中删除该操作符,同时标记其匹配的操作数为0,如果遇到操作数,则应该对栈顶的操作符的配对操作数加一,当新来一个操作符时,对前面操作...

2018-12-07 23:58:01

阅读数:5

评论数:0

中缀、前缀、后缀表达式相互相互转换与求值

转载至:https://www.cnblogs.com/nzbbody/p/3335226.html 表达式转化(中缀,后缀,前缀) 1、为什么要把中缀表达式转化为后缀,前缀? 计算机没法计算带有括号,以及区分优先级的表达式,或者说很难计算。使用后缀,前缀,消除了括号和优先级。 2、中缀如何计算后...

2018-12-07 21:33:56

阅读数:6

评论数:0

Dijkstra算法和Floyd算法的正确性证明

Dijkstra算法正确性证明 命题:当算法进行到第 k 步时,对于 S 中每个结点 i,dist [i] = short [i] 归纳基础 k = 1, S = {s}, dist [s] = short [s] = 0. 归纳步骤 证明:假设命题对 k 为真,则对 k+1命题也为真. 归纳步...

2018-12-06 00:33:48

阅读数:8

评论数:0

跳出课本学KMP算法

KMP算法用于串的模式匹配,主串S,子串T(也叫模式串),模式匹配意思是从S中找出跟T一样的子串,就是说判断S是否包含T,时间复杂度O(m+n),实现这个算法关键有两步,第一步,求next数组,第二步KMP主算法 如何理解next数组,**next[j]表示当子串T中第j个字符与主串中相应字符“失...

2018-12-05 12:15:57

阅读数:6

评论数:0

矢量数据压缩,道格拉斯——普克法算法实现

作为GISer,处理空间数据才是主要任务,矢量数据压缩这一块要学习学习。 这里矢量数据压缩是指线的数据压缩,意思是假如某根线有n个点,现在如果删除一些点,这条线仍然性质良好,那么就实现了压缩,那么下面的算法目的就是对线上不必要一些点给删除了。 算法名字叫道格拉斯——普克法算法,当然还有还有其他...

2018-12-04 23:10:05

阅读数:9

评论数:0

C语言文件大总结

1.文件打开 r 打开文本文件,只读,该文件必须存在 r+ 打开文本文件,可读写,该文件必须存在。 w 打开文本文件,只写,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 w+ 打开文本文件,可读写,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文...

2018-12-03 00:33:40

阅读数:10

评论数:0

动态规划问题二:最长重复/公共子串长度求解

问题一:求串s1,s2最长公共子串长度 问题二:求串s的最长重复子串 问题三:求串s1,s2最长公共子序列长度 注:两个字符串的最长公共子序列与最长公共子串区别是前者字符之间不一定是连在一块的,而公共子串必须要连在一块。比如字符串1:ABCAB;字符串2:ADEBCFA,则这两个字符串的最长公共子...

2018-12-02 17:01:19

阅读数:49

评论数:0

顺序表查找设置哨兵

既高端又俗气的名字:哨兵 哨兵用于顺序表查找,所谓“哨兵”就是用一个特殊值来作为数组的边界,使用“哨兵”可以少用一条判断语句(少了i<n这句),所以可以提高程序的效率。 //普通查找代码 int Search_1(int *a,int n,int key...

2018-12-02 15:30:58

阅读数:95

评论数:0

栈应用:中缀表达式求值

后缀表达式求值比较简单,基本过程为:遇到数字则进栈,遇到运算符则出栈俩数字然后计算结果,再把结果入栈,过程比较简单,不再复习了,下面着重记录中缀表达式求值 中缀表达式求值可以先将中缀转后缀,再用后缀计算结果,但是,有点太麻烦,而另一种方式是利用两个栈直接求值,思想与上一个笔记中缀转后缀几乎一样,...

2018-12-02 00:43:39

阅读数:32

评论数:0

栈应用:中缀转后缀,中缀转前缀

没多大技巧,严格按照规则,记住即可: 转换过程需要用到栈,具体过程如下: 1)如果遇到操作数,我们就直接将其输出。 2)如果遇到操作符,则我们将其放入到栈中,遇到左括号时我们也将其放入栈中。 3)如果遇到一个右括号,则将栈元素弹出,将弹出的操作符输出直到遇到左括号为止。注意,左括号只弹出并...

2018-12-01 23:04:03

阅读数:17

评论数:0

大数阶乘or相乘

大数相乘或者阶乘不能用传统乘号直接来原因是乘出来数太大了,计算机内存受不了,比如12!为亿级,100!有97位;编程界处理这类大数问题一般这么处理: 如果现在要求:2746512,那么乘的过程是: 对于个位:312=36,那么可以断定27465*12的个位数一定是6,所以我们把个位3换成3...

2018-12-01 15:40:43

阅读数:396

评论数:0

统计非平凡子串数目

设S为一个长度为n的字符串,其中串的字符各不相同。写出具体程序,并计算出S中互异的非平凡子串(非空且不同于S本身)的个数 #include<stdio.h> void main() { int count=0,j,i,n; char *s...

2018-12-01 12:26:15

阅读数:15

评论数:0

动态规划问题一:背包问题

学习自:Christal_R 有一个背包,能盛放的物品总重量为capacity,设有number件物品,其重量分别为w1,w2,…,wn,希看从N件物品中选择若干物品,所选物品的重量之和恰能放进该背包,即所选物品的重量之和即是S。 寻找递推关系式,面对当前商品有两种可能性: 第一,包的容量比该商...

2018-11-29 21:40:29

阅读数:3

评论数:0

回溯问题三:迷宫问题

题意: 0 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 0 1 1 上面矩阵表示一个迷宫,其中的1表示墙壁,0表示可以走的路,现在编写程序从(0,0)开始走从最后一行有出口处走出 解题方法:回溯法,与全排...

2018-11-29 21:07:12

阅读数:59

评论数:0

回溯问题二:八皇后问题

程序设计五大思想之一,回溯。接下来两天要用回溯解决以下问题: (1)八皇后问题 (2)0-1背包问题 (3)旅行售货员问题 (4)装载问题 (5)迷宫问题 (6)图的m着色问题 (7)排列组合问题 问题一:八皇后问题 在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两...

2018-11-28 22:19:29

阅读数:18

评论数:0

图,十字链表与邻接多重表存储方法

对于考研来说,这两个图存储方法属于低频考点,但是,一旦考了可就要了亲命了,以防万一,总结如下: 十字链表主要用于存储有向图,临界多重表主要用于存储无向图,首先复习临界表画法: 十字链表 结构 根据有向图画十字链表 **画图策略:**先从各个顶点结点画第二个指针,因为第二个指针为...

2018-11-28 17:27:38

阅读数:28

评论数:0

关系数据库系统RDBMS与面向对象数据库管理系统ODBMS优缺点比较

关系数据库系统与面向对象数据库系统各自的优缺点 关系数据库系统的优点 a.灵活性和建库的简单性:目前在多数RDDMS产品中使用标准查询语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息。 b.结构简单:从数据建模的前景看,关系数据库具有相当简单的结构(元组),可为用户或...

2018-11-27 22:25:09

阅读数:7

评论数:0

数据库论文学习——概述

2018-11-27 20:45:35

阅读数:12

评论数:0

数据库新技术前沿总结

来源:《数据库系统概论》、中国知网 1.数据库技术发展进程来看,特点: (1)面向对象的方法和技术对数据库发展的影响最为深远数据库研究人员借鉴和吸收了面向对象的方法和技术,提出了面向对象数据模型(简称对象模型)。该模型克服了传统数据模型的局限性,促进了数据库技术在一个新的技术基础上继续发展。 (2...

2018-11-26 23:23:40

阅读数:1220

评论数:2

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