![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构C
文章平均质量分 65
yuanxiubin
这个作者很懒,什么都没留下…
展开
-
数据结构 (C语言) 读书笔记1
数据结构主要研究的问题:如何合理地组织数据,高效地处理数据,这就是“数据结构”主要研究的问题。 基本概念和术语 1、数据(Data):是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。 2、数据元素(Data Element):是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。也称为 元素、节点、记录。 3、数据项(Data Item):是组成数据元素的原创 2012-08-15 15:19:41 · 1059 阅读 · 0 评论 -
数据结构(C语言)读书笔记10:串的定长顺序存储表示
1、和线性表的顺序存储结构相似,用一组地址连续的存储单元存储串值的字符序列。 2、————串的定长顺序存储表示———— #define MAXSTRLEN 255 //用户可在255以内定义最大串长 typedef unsigned char SString[MAXSTRLEN+1]//0号单元存放串的长度 3、串的实际长度可在这个预定义长度的范围内随意,超过预定义长度的串值则被舍弃,称原创 2012-08-28 15:33:21 · 1467 阅读 · 0 评论 -
数据结构(C语言)读书笔记9:串的基本概念
1、串(String)是由零个或多个字符组成的有限序列,一般记为s='a1a2.....an'(n>=0).其中s是串名,用单引号括起来的是串值,串中字符的数目n称为串的长度。零个字符的串称为空串。 2、子串:串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串相应的称为主串。子串在主串中的位置以子串的第一个字符在主串中的位置来表示。 3、串的逻辑结构和线性表极为相似,主要区别仅在于串原创 2012-08-26 20:34:49 · 1187 阅读 · 0 评论 -
数据结构(C语言)读书笔记2:算法与算法分析概述
算法的定义及特性: 算法(Algorithm):是为了解决某类问题而规定的一个有限长的操作序列。 算法的重要特性:(1)、有穷性。一个算法必须在执行有穷步后结束,每一步必须在有穷时间内完成。 (2)、确定性。对于每种情况下所应执行的操作,在算法中都有明确的规定,不会产生二义性。原创 2012-08-17 13:43:31 · 437 阅读 · 0 评论 -
数据结构(C语言)读书笔记6:栈的应用之括号匹配的C代码实现
括号匹配的算法思想: 初始化一个空栈,扫描表达式,依次读入字符,知道扫描完或者出现错误匹配。对于读入的每个字符,分以下情况处理: (1)、如果是‘’(“”或“【”,将其压入栈。 (2)、如果是“)”,则根据当前栈顶元素的值分情况考虑。若栈顶元素是“(”,则匹配成功,否则为非法情况。 (3)、如果是“】”,则根据当前栈顶元素的值分情况考虑。若栈顶元素是“【”,则匹配成功,否则为非法情况。原创 2012-08-21 16:21:22 · 2198 阅读 · 0 评论 -
数据结构(C语言)读书笔记3:顺序表
1、线性表的定义和特点 (1)定义:有n(n>=0)个数据特性相同的数据元素构成的有限序列称为线性表。 (2)特点:【1】存在唯一的被称为“第一个”的数据元素。 【2】存在唯一的被称作“最后一个”的数据元素。 【3】除了第一个之外,其他的数据元素均只有一个前驱。 【4】除了最后一个外,结构中的原创 2012-08-17 23:34:53 · 1009 阅读 · 0 评论 -
数据结构(C语言)读书笔记8:队列
1、队列(queue)的定义:队列是一种先进先出的线性表。即允许在表的一端进行插入,在另一端进行删除的线性表。 允许插入的一端叫队尾(rear),允许删除的一端叫队头(front)。 2、队列的抽象数据类型定义: ADT Queue{ 数据对象:D={ai | ai∈ElemSet,i=1,2,。。。。n} 数据关系:R={ | ai-1, ai∈D, i = 2, ...,原创 2012-08-22 18:59:48 · 811 阅读 · 0 评论 -
数据结构(C语言)读书笔记11:堆分配存储表示
1、堆分配存储表示的特点:以一组地址连续的存储单元存放串值字符序列,但他们的存储空间是在程序执行过程中动态分配的。在C语言中,存在一个称之为“堆”的自由存储区,并由C语言的动态分配函数malloc()和free()来管理。 2、串的堆分配存储表示: typedef struct{ char *ch;//若是非空串,则按串长分配存储区,否则ch为NULL; int length;//串长度原创 2012-08-31 16:54:36 · 1737 阅读 · 0 评论 -
数据结构(C语言)读书笔记5:栈的应用之数制转换及C语言代码实现
十进制数N转换成其他d进制数的转换是计算机实现计算的基本问题,解决方法很多,其中一个简单算法基于如下原理:N=(N div d)*d +N mod d ,主要涉及到进栈和出栈。 算法描述://十进制转换成其他进制 void coversion () { int N,e,d;//十进制N转换成d进制数 InitStack(&S);//构造空栈 scanf(“%d”,&N); wh原创 2012-08-20 23:26:27 · 3014 阅读 · 0 评论 -
数据结构(C语言)读书笔记7:栈:行编辑程序C代码
#include #include #include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 //#define OVERFLOW -1 #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef int SElemType; ty原创 2012-08-21 21:10:33 · 1684 阅读 · 0 评论 -
数据结构(C语言)读书笔记4:栈及基本操作
1、栈是限定仅在表尾进行插入和删除操作的线性表。是一种特殊的线性表。表头端称为栈底(bottom),表尾端称为栈顶(top)。特点是一种后进先出的线性表。 2、栈的抽象数据类型的定义: ADT Stack{ 数据对象:D={ai | ai∈ElemSet,i=1,2,。。。。n} 数据关系:R={ | ai-1, ai∈D, i = 2, ..., n } 基本操作: ini原创 2012-08-20 21:31:00 · 1181 阅读 · 0 评论 -
字符串模式匹配KMP算法
字符串模式匹配指的是,找出特定的模式串在一个较长的字符串中出现的位置。 朴素的模式匹配算法 很直观的可以写出下面的代码,来找出模式串在一个长字符串中出现的位置。 1: /* 2: 朴素的模式匹配算法 3: 功能:字符串的模式匹配 4: 参数: 5: s:目标串 6: p:转载 2012-09-09 19:29:59 · 684 阅读 · 0 评论