1、栈和队列的区别
都是操作受限的线性表,插入和删除都只能在端点处进行
栈:先进后出,队列:先进先出
栈:只允许在一端进行插入和删除
队列:允许在队尾插入,队头删除的线性结构
对于栈,只允许在一端进行插入和删除,该端称为栈顶,导致栈的特点为先进后出
对于队列,允许在队尾插入队头删除,导致队列的特点为先进先出
2、数组和链表的区别?
两者都属于线性结构
存储结构:数组顺序存储(使用一段连续的存储空间),逻辑相邻物理也相邻;
链表链式存储(任意一段空间),逻辑相邻物理不一定相邻
时间复杂度:数组插入删除O(n),修改查找O(1),所以数组适合查找修改;
链表插入删除为O(1),修改查找O(n),链表更适合插入和删除
访问:数组支持随机访问,可以通过下标进行;链表不支持随机访问,必须从头结点开始遍历
数组静态分配内存,链表动态分配内存
3、标准IO和文件IO的区别?
都可以进行文件读写,都会进行系统调用
标准IO=系统调用+缓冲区
标准IO有缓冲区,文件IO没有缓冲区
使用标准IO可以减少系统调用的次数,提高系统的频率,执行效率更高,文件IO的执行效率较低
文件IO使用文件描述符,标准IO使用文件指针