当前位置: 首页 > news >正文

青海省建设厅网站首页关键词优化公司

青海省建设厅网站,首页关键词优化公司,黑龙江建设工程网,国外网站服务器免费数据结构C语言版清华大学严蔚敏(学习笔记总结1,代码在下面)——顺序表、链表、循环链表、双向链表、结点的插入删除(前面是笔记方便理解,最下面有详细代码)_玛卡巴卡的博客-CSDN博客 串(即字符…

数据结构C语言版清华大学严蔚敏(学习笔记总结1,代码在下面)——顺序表、链表、循环链表、双向链表、结点的插入删除(前面是笔记方便理解,最下面有详细代码)_玛卡巴卡的博客-CSDN博客

串(即字符串)是一种特殊的线性表,它的数据元素仅由字符组成。

串是由零个或多个字符组成的有限序列。串中任意连续个字符组成的子序列称为子串。子串的第一个字符在主串中的序号,定义为子串在主串中的位置,该位置索引从0开始。

特别的,空串是任意串的子串,任意串是自身的子串。

串的逻辑结构与线性表极为相似,区别仅在于串的数据对象约束为字符集,但操作有很大差别。

求子串,从第i位置的字符开始抽出j个字符构成一个新的串。j<=strlen(s)+1-i;
 

1.顺序存储typedef struct{
char ch[maxsize];
int len;
}string;
2.链式存储typedef struct linknode{
char data;
struct linknode *next;
}linkstring;
linkstring *s;
3.带长度的索引表typedef struct{
char name[maxsize];  //串长
int length;
char *stadr;   //串值存入的起始地址
}lennode;
带末指针的索引表typedef struct{
char name[maxsize];
char *stadr,*enadr;
}enode;//用一个指向串值存放的末地址的指针enadr来代替长度。
//串运算的实现typedef struct{
char ch[maxsize];
int len;
}string;
//串的连接运算(strcat)
for(i=0;i<s->len;i++)r->ch[i]=s->ch[i];
for(i=0;i<t->len;i++)r->ch[s->len+i]=t->ch[i];
r->ch[s->len+i]='\0';
r->len=s->len+t->len;
//求子串运算
if(i+j-1>s->len)printf("超界");
else
{for(k=0;k<j;k++)t->ch[k]=s->ch[i+k-1];t->len=j;t->ch[t->len]='\0'; 

①数组的定义和运算

三维数组可以看做其元素用二维数组定义的特殊线性表。以此类推,n维数组是由n-1维数组定义的,每个元素受到n个下标约束。

数组是由值与下标构成的有序对,结构中的数据元素都与其下标有关。

数组性质:数据元素数目确定;数据元素有相同类型;下标有上下界的约束,并且下标有序;

②数组的顺序存储结构

一旦建立了数组,则结构中的数据元素个数和元素之间的关系就不再发生变动。

二维数组的顺序存储:以行为主序的优先存储和以列为主序的优先存储。以下标顺序为主序的优先存储和以逆下标顺序为主序的优先存储。

多维数组中,以下标顺序为主序表示先排最右的下标,从右向左直到排到最左的下标;而以逆下标顺序为主序,则表示从最左开始向右排列。

③矩阵的压缩存储

用二维数组来描述矩阵。

压缩存储,是指对多个相同的元素只分配一个空间,对零元素不分配空间。

1,特殊矩阵

(1)对角矩阵

所有非零元都集中在以主对角线为中心的带状区域中,即除了主对角线上和主对角线相邻近的上下方以外,其余元素均为0.

最简单的情况为只在主对角线上含有非零元。

A[0]=A[0][0],A[1]=A[1][1],即A[k]与aii对应关系是k=i.

(2)三角矩阵

上三角矩阵是指矩阵的下三角(不包含对角线)中的元素均为0,上三角矩阵与之相反。

在三角矩阵中,值相同的元素可共享一个存储空间,若重复元素为0则可不分配存储空间;其余的元素共有n*(n+1)/2个。

在下三角矩阵中,对于aij元素,前面已经存放了i行,元素的总数为i*(i+1)/2,aii处在第i+1行的第j+1个元素,则其前面已存放的元素数目为i*(i+1)/2+j,也就是说,aij应是数组A的第k+1个元素,k=i*(i+1)/2+j.

A[k]与aij的对应关系为   k=i*(i+1)/2+j,i>=j;     k=n*(n+1)/2,i<j

(3)对称矩阵

在n阶方阵中,若A中元素满足aij=aji,则A是对阵矩阵。

元素关于对角线对称,因此在存储时只需存储上三角或下三角中的元素,使得对称的元素共享一个存储空间。

假设存储下三角中的元素,k=i*(i+1)/2+j,i>=j;

当i>j时,在上三角矩阵,k=j*(j+1)/2+i,i<j;

统一起来就是:k=i*(i+1)/2+j,   i=max(i,j),     j=min(i,j).

2,稀疏矩阵

含有非零元素及较多的零元素,但非零元素的分布没有任何规律。

下面仅讨论用三元组表来表示两种稀疏矩阵的压缩存储方法。

若将表示稀疏矩阵的非零元素的三元组按行优先(或列优先)的顺序排列(跳过零元素),则得到一个其结点都是三元组的线性表。我们将该线性表的顺序存储结构称为三元组表。因此,三元组表是稀疏矩阵的一种顺序存储结构。

要唯一的存储一个稀疏矩阵,还必须存储该矩阵的行数和列数。还要将非零元素的个数与三元组表存储在一起。
通过行号,列号以及元素值来存储矩阵。

压缩存储中实现矩阵的运算:

将矩阵转置,将A转置成B,就是将A的三元组表中的a->data置换成b->data,再重新排列三元组 的顺序使之成为按行优先排列。

由于A的列是B的行,因此,按a->data的列序转置,所得到的转置矩阵B的三元组表必定是按行优先存放的。为了找到A的每一列中所有的非零元素,需要对三元组表从第一行起整个扫描一遍。


 

http://www.lbrq.cn/news/2785609.html

相关文章:

  • 帝国cms 网站例子谷歌建站
  • 做的网站怎么上传到网上运行win7优化大师官方免费下载
  • 一个wordpress多个网站网络优化主要做什么
  • 富利建设集团有限公司网站千锋教育培训机构就业率
  • 优化后的网站百度seo优化教程免费
  • 网站左右箭头素材成人大学报名官网入口
  • 网站建设需要哪些准备网络推广的方式
  • 佛山大良网站建设招聘百度网盘电脑版
  • 汉阴网站建设排行榜百度
  • 黄石做企业网站搜狐综合小时报2022113011
  • 有了域名后怎么完成网站建设广告投放是做什么的
  • 公司简介范文100字左右自建站seo如何做
  • 越秀网站建设优化坚持
  • 格尔木市公司网站建设比较成功的网络营销案例
  • 博罗网站建设哪家好军事新闻
  • 通辽企业网站建设b站推广网站2023
  • 校园二手网站设计论文一句话让客户主动找你
  • 网站制作素材网站泉州百度网站推广
  • 济南做网站价格陕西seo优化
  • 常州网站制作费用郑州网站优化哪家好
  • 网站设计 开发人员手机网站智能建站
  • 花卉网站建设的总结与市场调研报告
  • 茶企业网站建设模板网络公司取什么名字好
  • 石狮住房和城乡建设局网站苏州网站建设书生
  • 手机网站图片做多大百度浏览器下载
  • 模板性公司网站图片中国足彩网竞彩推荐
  • wap自助建站排板合肥头条今日头条新闻最新消息
  • 做网站app的工资高吗个人购买链接
  • 聊城网站建设品牌促销方法100种
  • 湖南企业做网站广州今日头条新闻最新
  • 【Linux系统】匿名管道以及进程池的简单实现
  • ListBoxes使得在专为灵活性和易用性设计
  • 云原生堡垒机渗透测试场景
  • 应急响应常见命令
  • 【Python语法基础学习笔记】条件表达式和逻辑表达式
  • axure chrome 浏览器插件的使用