[ 1002 ] 考试笔记 数据结构 简代码与小小说

----012345---

----0123345---

/********

代码

if(i<1||i>L->last+2)   printf("i的位置出界\n");return ;

if(L->last>=MAXSIZE-1) printf("链表已满\n");return ;

for(k=L->last;k>i-1;k--) L->elem[k+1]=L->elem[k];

elem[i-1]=e;  L->last++;

return ok;

********/

[H|NULL]   [data|next]

[H|&P1] [P1|&P2] [P2|NULL]

头结点  首元结点

头指针  p1=H->next;

*H=(Linklist)malloc(sizeof(Node));

(*L)->next=NULL;

头插法

[H|&p1] [P1|&P2] [P2|NULL]

s=(Node*)malloc(sizeof(Node)); [s|NULL]

S->data=p;                      [p|NULL]

s->next=H->next;                [p|&p1]

H->next=p;           [H|&p] [p|&p1] [P1|&P2] [P2|NULL]

尾插法

[H|&p] [P|NULL]

s=(Node*)malloc(sizeof(Node));  [s|NULL]

S->data=c;                      [c|NULL]

p->next=s;           [H|&p] [P|&c  ] [c|NULL]

p=s;                        p↑      p↑s

【栈】

typedef struct{SE elem[5];int top; }SK;

【[0][1][2][3][4]】

↑             ↑

top

进栈》》

S->top=SIZE-1 栈满 eg:5-1=4;

因为top初始化为-1所以进栈先S->top++;

S->elem[S->top]=x;     双重指向性;eg:top=2;【[0][1][x][3][4]】

出栈》》

*x=S->elem[S->top]; 仅能由顶出(表达式来实现栈的功能)

*x指针指向原来top的位置,可x带出其值(实际x还在机器的x处)

top--;维护栈,才能体现栈的含义;

【队列】

typedef struct  Node{ QE data;struct  Node *next;}LQNode;

typedef struct{LQNode *front;LQNode *rear; }LQ;

【[][][][]】?       【[f|*][r|*]】

Q->front=(LQNode *)malloc(sizeof(LQNode));   [e|*]

if(Q->front!=NULL)

{

Q->rear=Q->front;        [ f|*  ][ r |* ]

Q->front->next=NULL;     [f|NULL]

return(T);

}

插入》》

N=(LQNode *)malloc(sizeof(LQNode)); [e|*]

if(N!=NULL)

{

N->data=x;                     [x| *  ]

N->next=NULL;                  [x|NULL]

Q->rear->next=N;           [f|NULL][ r | &x ] [x|NULL]

Q->rear=N;                             r↑          r↑N

return(T);

}

队尾插入,队头出队;(可以重新自己反定义?)

出队》》                       [f|NULL][ r | &x ] [x|NULL]

p=Q->front->next;                      p↑        ↑p->next

Q->front->next=p->next;         [f|NULL]  [x|NULL]

*p= p->data

free(p);                              frree([ r | &x ]  )

串 string

全程为一串字符串;strings

顺序表实现储存

typedef struct{ char e[MAX];int len; }SS;

串插入  分很多情况   【----------】

【------[*****]-----】

↑ ↑ ↑ ↑

丢掉的

串删除  往前移动 len--;

for(i=p+l;i<s->len;i++)s->ch[i-l]=s.ch[i];s->len=s->len-l;

串判空 (s.len==0)?(return 1):(return 0);/*仅限于伪代码笔记*/

串复制 for(i=0;i<len;i++)s.ch[i]=t.ch[i];s->len=t->len;

串比较  for(i=0;i<len;i++)if(s.ch[i]!=t.ch[i])return (s.ch[i]-t.ch[i]);

串长度  return s.len

串清空  s->len=0;

时间: 2024-09-30 14:30:34

[ 1002 ] 考试笔记 数据结构 简代码与小小说的相关文章

软件设计师考试笔记一:原码、反码、补码及移码

十进制小数转化为二进制小数的方法:对十进制小数乘以2得到的整数部分和小数部分,整数部分即是相应的二进制数码,再用2乘小数部分,结果再取整数部分,如此反复,直到小数部分为0或达到精度为止.第一次得到的为最高位,最后一次得到为最低位. 如计算+0.52的二进制: 1.0.52*2=1.04 (取整得到1) 2.0.04*2=0.08 (取整得到0) 3.0.08*2=0.16 (取整得到0) 4.0.16*2=0.32 (取整得到0) 5.0.32*2=0.64 (取整得到0) 6.0.64*2=1

笔记-Ajax[2]-代码的实现。

<script> var xhr; //创建一个ajax的对象 try{ xhr=new XMLHttpRequest(); }catch(e){ xhr=new ActiveXObject("Microsoft.XMLHTTP"); } //建立请求 xhr.open('post','/ajax/content.php',true); //发送请求 xhr.send('username=Ajax'); //响应 xhr.onreadystatechange=functio

ios开发小技巧-用宏化简代码

在IOS开发中,要做字典转模型一般情况如下: 1 /** 2 * 声明方法 3 */ 4 - (instancetype) initWithDictionary:(NSDictionary *)dict; 5 + (instancetype) carWithDictionary:(NSDictionary *)dict; 6 7 /** 8 * 实现方法 9 */ 10 - (instancetype)initWithDictionary:(NSDictionary *)dict 11 { 12

[学习笔记]数据结构与算法

1.排序简单排序:?冒泡排序:将n个数从上往下排列,从第0个数开始依次对前n个.前n-1个.前n-2个数进行比较,保持小数在前大数在后,不符合就交换.在这个过程中,最后一个数始终是最大数.?选择排序:对所有n个.后n-1个.后n-2个依次比较,用一个变量存最小数,一趟比较完成之后,将最小数与所比较数据的第一个数进行交换.在这个过程中,第一个数始终是最小数.?插入排序:从第1个数开始向前扫描比较,小则插入.对于未排序数据,在已排序序列中向前扫描,并找到相应的位置插入.在这个过程中,整个序列局部有序

标C编程笔记day08~day10代码规范、编译、库函数、命名空间、函数调用、哑元函数

代码编写规范,命令行编译,库函数简介,命名空间介绍,函数调用介绍,哑元函数介绍 一般来说,有.c实现文件,应该都要有.h头文件,.c文件中的所有函数都应该在.h文件中声明. 命令行编译方法: 1.gcc 后面带所有.c 文件 -o 输出文件名   直接生成可执行文件 2.依次gcc -c .c文件  -o ***.o  生成***.o文件 然后 gcc 所有.o文件 -o 输出文件   生成可执行文件 程序中的静态全局变量不可以被其他文件中的语句使用. .c文件使用.h文件中的全局变量:exte

JAVA学习笔记 -- 数据结构

一.数据结构的接口 在Java中所有类的鼻祖是Object类,但是所有有关数据结构处理的鼻祖就是Collection和Iterator接口,也就是集合与遍历. 1.Collection接口 Collection c = new Xx(); // c可以称为Collection接口回调对象,虽然它被声明为Collection类型,但是实例化时实现的是接口的实现类Xx.它的方法也是用来操作实现类的对象. <span style="white-space:pre"> </s

第九次读书笔记——读《代码整洁之道》有感

第九次读书笔记--读<代码整洁之道>有感 "相对于任何宏伟景愿,对细节的关注甚至是更为关键的专业的基础.首先,开发者通过小型实践获得可用于大型实践的技能和信用度.其次,宏伟建筑中最细小的部分,比如关不紧的门,有点没有铺平的地板,甚至是凌乱的桌面,都会将整个大局的魅力毁灭殆尽."看完了这本书,感觉书中的这句话是整本书的核心.个人感觉这本书给我带来的更多的不是能力上的提升,而是思想上对代码整洁有了整体的把握. 首先,这本书让我们在思想层面上认识到了代码整洁的必要性,只有思想有了

基于sklearn 实现决策树(含最简代码,复杂源码:预测带不带眼镜)

最简代码: 1 #简单的决策树分类 2 from sklearn import tree 3 features = [[300,2],[450,2],[200,8],[150,9]] 4 labels = ['apple','apple','orange','orange'] 5 clf = tree.DecisionTreeClassifier() 6 clf = clf.fit(features,labels) 7 print(clf.predict([[400,6]])) 预测代码: 数据

PHP学习笔记5:代码重用和函数

读<PHP和MySQL Web开发>笔记合集: http://my.oschina.net/bluefly/blog/478580 1. 代码重用的好处 成本.可靠性.一致性 注意:只要原来的代码是模块化的而且编写良好,那么重复使用代码还会节省很多工作.在工作时,可以试着辨认一下今后可能再次要调用的代码段. 2. require() 与被包含代码执行问题 如果希望一个被包含文件中的PHP代码能够被当成PH代码进行处理,必须将PHP代码放到PHP标记之间(不管被包含代码的文件是什么后缀,jpg.