2019学习笔记
略
SigridC
(●'◡'●)
展开
-
4.(数据结构)顺序栈+链栈+栈的应用(中缀转后缀表达式)
堆栈:LIFO结构1.按一定顺序进栈然后所有出栈顺序的可能性:核心:出栈的第一个元素是在原来的次序中是第几个,那么比它先入栈的元素,出栈顺序必须是逆序因为从小到大入栈顺序是确定的,而出栈是随机的,也就是在入栈还没结束的情况下就可以出栈。这样,就会出现一些小的数提前出栈的现象。但是那些“守规矩”的小数相对位置是没有变化的。比如入栈12345,结果在4入栈之前3不听话先出去了。但是这不会影响1和...原创 2019-10-14 22:24:33 · 526 阅读 · 0 评论 -
4.(数据结构)广义表和多重链表和稀疏矩阵
1.广义表:线性表的一种推广。对于线性表而言,n个元素都是基本的单元素;广义表中,这些元素还可以是另一个广义表。二元多项式可以等价变形后写成 ax^n1+bx^n2+cx^n3的形式,其中的系数不是常数,是一元多项式因此它可以用复杂的链表表示:把原来表示常数的位置变成指针 。广义表一般形式如下:typedef struct GNode *GList;struct GNode{ int...原创 2019-10-14 20:37:28 · 485 阅读 · 0 评论 -
4.(数据结构)顺序表+单链表:基本函数的实现
如果采用一元数组表达多项式,让数组下标表示指数,那么当多项式有很多零项时,则造成了后续操作不必要的循环和空间的浪费。比如 y = 3 + 4x^8| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 |故我们可以考虑用结构数组(顺序/链式),按照指数递增/递减,只存储非零项(系数+指数) 。(PS.以上三个方法的进行两个多项式的合并运算的核心是:先分别指向多项式的头,比...原创 2019-10-14 19:46:07 · 322 阅读 · 0 评论 -
3.分而治之+在线处理:求最大子列和
问题:求给定N个整数的序列{A1,A2…,AN}中函数f(i,j)=max{0,S}的最大值,其中S是从Ai到Aj的子列和算法1:用变量i,j分别代表子列的两头进行遍历,再用变量k遍历子列求和int MaxSubSum1(int N,int a[]){ int ThisSum; int MaxSum=0; int i,j,k; for(i=0;i<N;i++){ for(...原创 2019-10-14 17:07:26 · 443 阅读 · 1 评论 -
2.clock( )函数与算法比较:计算一给定多项式在给定点的值
(ps.标题算法在文末)由图书的摆放得到结论:解决问题的方法的效率,与数据的组织方式有关。由递归占用空间过多而罢工得到结论:解决问题的方法的效率,与空间的利用率有关#include <stdio.h> void printN1(int N){ //循环实现 int i; for(i=1;i<=N;i++){ printf("%d ",i); } ...原创 2019-10-13 22:53:30 · 251 阅读 · 0 评论 -
1. 理清函数传指针变量(线性表)
1.结构体指针变量:指向一个结构体变量的指针结构体指针变量的值是相应结构体变量的首地址。通过结构体指针变量可访问该结构的成员变量。一般形式如下:struct 结构名 *结构体指针变量名;(PS:结构名和结构体变量是两个不同的概念,不能混淆。结构名只能表示一个结构形式,编译系统并不会对它分配内存空间。只有当某变量被声明为这种类型的结构时,才对该变量分配存储空间。)其访问结构体变量的各个...原创 2019-10-13 22:43:41 · 264 阅读 · 0 评论