转眼又过了一周了,前面一周里面我编了一些程序:链表,长整型数相加,三元组表转置以及一些简单的函数.其实有些算法想想是很简单,不过写起来还是需要一定耐心和C基础的,如果你自己觉得各算法都很懂了,不妨开机编编试试.或许会有一些新的发现与体会. 栈和队列 1、知识点: ● 栈的定义:操作受限的线性表 ● 特点:后进先出 ● 栈的存储结构:顺序,链接 / push(s,d) ● 栈的基本操作: \ pop(s)
栈定义: struct { datatype data[max_num]; int top; };
●队列定义 特点:先进先出 /入队列 in_queue(Q,x) ●队列的操作: \出队列 del_queue(Q) ●队列存储结构: 链队列: Typedef struct node{ Datatype data; Struct node *next; }NODE; Typedef struct { NODE *front; NODE *rear; }Queue; 顺序队列: struct { datatype data[max_num]; int front,rear; }; 问题: 队列ó线性表 假溢出<=循環队列 队列满,队列空条件一样<=浪费一个存储空间
递归 定义:问题规模为N的解依赖于小规模问题的解。问题的求解通过小规模问题的解得到。 包括二个步骤: 1) 递推 6!=>5!=>4!=>3!=>2!=>1!=>0! 2) 回归 720<=120<=24<=6 <=2 <=1 <=0 递归工作栈实现递归的机制。
|