数电-门电路
门电路(Gate Circuit)门电路是指以实现基本逻辑关系和复合逻辑关系的电子电路。 高电平和低电平的含义高电平和低电平为某规定范围(由门电路的种类决定)的电位值,而非一固定值。 若无特殊声明,在日常生活中均以正逻辑体制来表示高低电平。 二极管的开关特性本征半导体导体基本概念: 导体:自然界中容易导电的物质。 绝缘体:电阻率很高的物质,几乎不导电。 半导体:导电特性处于导体和绝缘体之间的物质。 现代电子学中,用的最多的半导体是硅和锗,最外层电子(价电子)都是4个。 本征半导体:完全纯净的、结构完整的半导体晶体。 在硅和锗晶体中,原子按四角形系统组成晶体点阵,每个原子都处在正四面体的中心,而四个其他原子位于四面体的顶点,每个原子与其相邻的原子之间形成共价键,共用一对价电子。 共价键中的两个电子被紧紧束缚在共价键中,称为束缚电子,常温下束缚电子很难脱离共价键成为自由电子,因此本征半导体中的自由电子很少,导电能力很弱。 本征半导体的导电机理 载流子、自由电子和空穴 在绝对0度(T=0K)和没有外界激发时,价电子完全被共价键束缚着,本征半导体中没有...
数据结构-排序
排序的基本概念排序算法的稳定性:若进行排序算法后,关键字相同的元素在排序之后相对位置保持不变,就称算法是稳定的,反之为不稳定。 如图1-1,若3的元素相对位置发生改变即为不稳定。 插入排序插入排序的基本思想是每次将一个待排序的记录按其关键字大小插入前面已排好序的子序列,直到全部插入完成。 直接插入排序直接插入排序算法就是,就是一个个从左往右比较大小,将大的放在后面,小的放在前面。 算法实现代码: void InsertSort(int A[],int n){ int i,j,temp; for(i=1;i<n;i++){ if(A[i]<A[i-1]){ //若后一位小于前一位则交换位置 temp = A[i]; for(j= i-1; j>=0 && A[j] > temp;--j) //检查排好序中是否有更大的数 A[j+1] = A[j]; A[j+1] = temp; ...
数据结构-查找
查找表的基本概念 查找:在数据集合中寻找满足某种条件的数据元素的过程叫查找。 查找表(查找结构):用于查找的数据集合称为查找表,由同一类型的数据元素组成。 静态查找表:若查找表只涉及搜索和插入操作,无需动态的修改查找表,则称此类表为静态查找表。 关键字:数据元素中唯一标识该元素的某个数据项的值。 平均查找长度:在查找过程中,进行关键字比较次数的平均值,数学定义为: $$ASL=\sum_{i=1}^{n}P_iC_i$$ n是查找表的长度;$P_i$是查找第i各数据元素的概率,一般认为每个数据元素的查找概率相等,即$P_i=\frac{1}{n}$;$C_i$是找到第i各元素所需进行的比较次数。 顺序查找和折半查找顺序查找 顺序查找又称线性查找,它对于顺序表和链表都适用。对于顺序表,可通过数组下标递增来顺序扫描每个元素;对于链表,可通过next来依次扫描每个元素。顺序查找通常分为对一般的无序线性表的顺序查找和对按关键字有序的线性表的顺序查找。 一般线性表的顺序查找作为最直观的查找方法,基本思想就是从一端逐个检查关键字是否满足给定的条件。 ...
复变函数-相关公式
复数的基本概念将$$z=x+iy$$的数称为复数,其中i称为虚数单位,并规定$$i^2=-1$$,或$$i=\sqrt{-1}$$;x和y是任意实数,依次称为z的实部(real part)与虚部(imaginary part),分别表示:$$Re z=x\quad Imz=y$$例:$$z=\sqrt{2}+i$$,有$$Re z=\sqrt{2}\quad Imz=1$$设$$z=x+iy$$是一个复数,而称$$x-iy$$为z的共轭复数,记作$$\overline{z}$$,可得$$\overline{\overline{z}}=z$$。 复数的四则运算设$$z_1=x_1+iy_1$$,$$z_2=x_2+iy_2$$。 加法:$$z_1+z_2=(x_1+x_2)+i(y_1+y_2)$$减法:$$z_1-z_2=(x_1-x_2)+i(y_1-y_2)$$乘法:$$z_1\cdot z_2 = (x_1x_2-y_...
数据结构-图
图的基本概念图的定义 图G(Graph)由顶点集V(Vertex)和边集E(Edge)组成,记为$$G=(V,E)$$,其中V(G)表示图G中顶点的有限非空集:E(G)表示图G中顶点之间的关系(边)集合,如图1-1。 注: 线性表可以是空表,树可以是空树,但图不能是空图。图可以没有边,但不能没有顶点。 有向图有向图就是点与点之间相互有方向之间的关系,若设v,w为顶点,而<v,w>为从顶点v到顶点w,则有向图中$$<v,w>\neq<w,v>$$。 无向图在无向图中,若设v,w为顶点,而<v,w>为从顶点v到顶点w,则有$$<v,w>=<w,v>$$。 简单图、多重图简单图就是满足以下条件的图: 不存在重复边。 不存在顶点到自身的边 多重图就是图中某两个结点的边数多余一条,又允许顶点通过同一条边和自己关联,则G为多重图。 顶点的度、入度、出度对于无向图:顶点v的度是指依附于该顶点的边的条数,记为TD(v)。 在具有n个顶点、e条边的无向图中,无向图的全部顶点度的和等于边数的2...
数据结构-树与二叉树
树的定义和基本术语 树的定义:树是一种递归定义的数据结构,它包含一个根结点和若干个子树。当树的结点数为0时,称为空树;当树的结点数大于0时,除了一个特定的根结点外,其余的结点被分成m个互不相交的有限集合T1, T2,…, Tm,其中每个集合本身又是一棵树,并且称为根结点的子树。 非空树的特性: 有且仅有一个根节点。 没有后继的结点称为“叶子结点”(或终端结点)。 有后继的结点称为“分支结点”(或非终端结点)。 除了根结点外,任何一个结点都有且仅有一个前驱结点。 每个结点可以有0个或多个后继结点。 树结点之间的关系描述 根据1-2图可以得出结点之间的关系描述: 祖先结点:对于”你”结点到”爷爷”结点都是祖先结点,即结点的所有前驱结点为祖先结点。 子孙结点:对于”爷爷”结点,所有后继结点都是子孙结点,即对于一个结点所有后继结点都是子孙结点。 双亲节点(父结点):对于”你”结点,”父亲”结点即为父结点,即对于一个结点的直接前驱结点为父结点。 孩子结点:对于”父亲”结点来说,”你“结点与”F”结点都是”父亲”结点的孩子结点,即对于一个结点的直接后继结点。 兄弟结点:对于”你...
数据结构-串
串的实现在C语言中所使用的字符串就是串的数据类型的一种。 串的存储结构定长顺序存储表示类似于线性表的顺序存储结构,用一组连续的存储单元存储串值的字符序列。 #define MAXLEN 255 //预定义最大串长为255 typedef struct SString { char ch[MAXLEN]; //每个分量存储一个字符 int length; //串的实际长度 }SString; 串的实际长度只能小于或等于MAXLEN,超过预定义长度的串值会被社区,称为截断。串长的表示由两种方法:一种是通过length存放串的长度;二是在串值后面加一个不计入串长的结束标记字符'\0'(C语言种字符串就是采用这种方法),此时串就根据'\0'来算长度。 堆分配存储表示堆分配存储表示仍然以一组地址连续的存储单元存放串,但存储空间是动态分配获得。 typedef struct{ char *ch; //按串长分配存储区,ch指向串的首地址 int length; //串的长度 }HStr...
数电-数字逻辑概论
数制 数制的概念就不过多赘述,这里主要描述十进制,二进制,八进制以及十六机制间的相互转换。 十-二-八-十六进制之间的转换二进制转十进制按位权进行展开再求和。 例:$$(101110.011)2 = 1 \times 2^5 + 0 \times 2^4 + 1 \times 2^3 + 1 \times 2^2 + 1 \times 2^1 + 0 \times 2^0 + 0\times 2^{-1} + 1 \times 2^{-2} + 1 \times 2^{-3} = (46.375){10}$$ 十进制转二进制十进制通过除2即可将再将每次除过后的余数保存下来并倒序即可获得相应的二进制数。整数部分采用“除基取余,小鼠部分采用“乘基取整法” 例:$$(26.375)_{10}$$ 整数部分(%代表取余):26%2 = 0 ,后再将 13 % 2 = 1 (13是通过26/2算出),后 6 % 2 = 0,再 3 % 2 = 1,最后 1%2 = 1,一直除到商为0为止。将取到的余倒序,...
中缀表达式转后缀表达式并计算
栈在表达式求值中的应用 表达式求值是程序设计语言中最基本的问题,在中缀表达式中不仅依赖运算符的优先级,而且还要处理括号。后缀表达式的运算符在操作数后面,在后缀表达式中已考虑了运算符的优先级,没有括号,只有操作数和运算符,更符合CPU的运算与处理。 中缀表达式转后缀表达式(手算)中缀表达式A + B * (C - D) - E / F化为后缀表达式采用左优先的原则(没有运算符更高级的一律从左往右进行匹配,保证算法的唯一性)。 在这表达式中先进行( )中进行运算,并将运算符放在操作数后面,得CD-。 此时CD-为一个整体并根据运算符优先级与B*进行运算得BCD-*。 再与A+进行运算,得ABCD-*+,剩下就是- E / F部分,先进行除运算得EF/,再ABCD-*+与EF/进行减运算,得最终结果ABCD-*+EF/-。 中缀表达式转后缀表达式(机算)初始化一个栈,用于保存展示还不能确定运算顺序的运算符。 从左到右处理各个元素,直到末尾。可能遇到三种情况。 遇到操作数。直接加入后缀表达式。 遇到界限符。遇到"("直接入栈:遇到")"则依次弹...
电路-电路模型和电路定律
电路和电路模型 电路是由电路零件、器件经导线连接而成的电通路装置。 电路零件常称为电路部件(例如电阻器、开关、蓄电池等); 电路器件则是由电路部件组成且具有某种功能的产品(如晶体管、集成电路等); 在电路中所产生的电压、电流是在电源的作用下产生的,因此电源又称为激励源或激励;由激励在电路中产生的电压、电流等称为响应。 电路模型电路模型 图片中左侧为简单的实际电路,由若干个干电池和小灯泡组成,右侧为电路模型,反映了将嗲能转换为热能和光能的物理现象;用理想电路元件或它们的组合模拟实际器件就是建立其模型,简称建模。 电流和电压的参考方向 电路理论中将电流(I)、电压(U)、电荷(Q)和磁通(Φ)来进行表示。磁通链用ψ进行表示。电功率和电能量分别用P和W。 在电路分析中,需指定电流或电压的参考方向后才能开始进行分析和计算。 在上图中规定了A到B电流i的方向为A->B,若实际电流方向和参考方向一致,则电流为正值,即i>0;若参考方向和实际方向不一致,即i<0。这样在指定的电流参考方向下,电流值的正负就可以反映除电流的实际方向,如下图所示。 同理,对电路两点...
数据结构-顺序表的相关算法实现
题目1:删除最小值 题目: 从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。 具体实现// 删除顺序表中最小值的元素 bool SqListDeleteMinimun(SqList *L,ElemType *e) { //判断顺序表是否为空 if (L->length == 0) { return false; } // 用于存放最小值 ElemType minValue = *(L->data + 0); // 用于存放最小值的索引 int index = 0; for (size_t i = 0; i < L->length - 1; i++) { if(*(L->data + i) > *(L->data + i + 1)){ minValue = *(L->data + i + 1); index = i+1; } &...
数据结构-线性表的概念与C语言实现
线性表的定义 注:线性表是一个逻辑结构!并不是真正物理意义上的地址相邻,而是在抽象层面的相邻,不要和顺序表搞混! 线性表是具有相同数据类型的n个数据元素的有限序列。除了第一个元素意外,每个元素有且仅有一个直接前驱。除最后一个元素外,每个元素有且仅有一个直接后继。 例:$$设有一个线性表 L=(a_1,a_2,…,a_i,a_{i+1},…,a_n)(a_1到a_n皆为int类型)\此时a_2的直接前驱为a_1,直接后继为a_3,以此类推。$$ 由此,可以得出以下特点: 表中元素的个数有限 表中元素具有逻辑上的顺序性 表中元素的数据类型相同,所占存储空间大小相同 元素都是数据元素,每个元素都是单个元素 线性表是逻辑结构,顺序表和链表指的是存储结构,两者概念不相同。 顺序表的定义与实现顺序表的定义 顺序表是用一组地址连续的存储单元依次存储线性表中的数据元素,使每个元素即在逻辑上相邻也在物理位置上相邻。 顺序表的第一个元素表示顺序表的起始位置,接下来的元素地理位置都是在第一个元素之后,所以可得顺序表的特点是元素的逻辑顺序(即线性表)和物理顺序相同。 例: ...
