linux,什么是Linux,技术分享
(1)概念 解决特定问题的求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。 重要特性: ①输入:有零个输入或者多个输 ②输出:只有一个或者多个输出 ③有穷性:算法在执行有限个步骤时,会自动结束而不会陷入无限循环里面 ④确定性:算法的每一步都有确定的含义而不会出现二义性 ⑤可行性:算法的
两者复杂度比较 查找 插入 删除 顺序表 O(1) O(1) O(n)通过下标直接找到待操作元素,主要时间花在移动元素上。 链表 O(n) O(n)主要时间用于找到插入元素的位置 O(n)主要时间用于找到待删除元素的位置 两者优缺点比较 数组 优点 缺点 随机访问性强;查找
栈的顺序存储实现 通常由一个一维数组和一个记录栈顶元素位置的变量组成。 (1)顺序栈结构体的定义 当 Top = -1时,表示栈空;当Top = MaxSize -1 时,栈满! typedef int Position; typedef int ElementType; typedef struct SNode *P
循环队列的结构体定义 typedef int Status; typedef int QElemType; * QElemType类型根据实际情况而定,这里假设为int * * 循环队列的顺序存储结构 * typedef struct QNode { QElemType data[MAXSIZE]; in
相同点 不同点 堆栈(FILO) 只允许在端点处插入和删除元素; 栈是先进后出或者后进先出;栈是只能在表的一端进行插入和删除操作的线性表 队列(FIFO) 只允许在端点处插入和删除元素; 队列是先进先出;队列是只能在表的一端进行插入,然后在另外一端进行删除操作的线性表
数组类型 存储地址的计算(a是数组首地址,len是每个数组元素所占长度) 一维数组 a[i]的存储地址:a+i*len 二维数组:a[m] [n] 按行存储:a+(i * n+j) * len;按列存储:a+(j * m+i) * len 例子:数组存储地址的计算示例: 1)已知一维数组a中每个元素