
数据结构
文章平均质量分 57
嵌入式的大菜鸟
心之所向,不慌不忙
展开
-
hash表原理和数据结构排序
若发送冲突时,在H(key)的前后找一个空闲单元存放冲突的记录,即在H(key)的基础上获取下一个地址:Hi=(H(key)+di)%m,其中m为表长,%运算是保证Hi落在[0,m-l]区间;di的取法有多种:(1)di=1,2,3,.....(m-1)----称为线性探查法;设记录的key集合k={50,36,66,76,36,12,25,95},每次以集合中第一个key为基准的快速排序过程。若在排序前Ri领先Rj,排序后Ri仍领先于Rj,则称这种排序是稳定的,其含义是它没有破坏原本已有序的次序。原创 2024-10-26 14:45:10 · 356 阅读 · 0 评论 -
数据结构查找
顺序、折半、分块查找和树表的查找中,其ASL的量级在O(n)~O(log2n)之间。不论ASL在哪个量级,都与记录长度n有关。随着n的扩大,算法的效率会越来越低。ASL与n有关是因为记录在存储器中的存放是随机的,或者说记录的key与记录的存放地址无关,因而查找只能建立在key的“比较”基础上。原创 2024-10-26 14:21:19 · 831 阅读 · 0 评论 -
数据结构树及实现
二叉树是n(n≥0)个节点的有限集合或者是空集(n=0)或者是由一个根节点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成。树中任何节点都可以有零个或多个直接后继节点(子节点),但至多只有一个直接前趋节点(父节点),根节点没有前趋节点,叶节点没有后继节点。有n个节点的完全二叉树可以用有n+1个元素的数组进行顺序存储,节点号和数组下标一一对应,下标为零的元素不用。节点的层数等于父节点的层数加一,根节点的层数定义为一。路径中前面的节点是后面节点的祖先,后面节点是前面节点的子孙。原创 2024-10-26 14:15:50 · 769 阅读 · 0 评论 -
队列实现及应用
在队列操作过程中,为了提高效率,以调整指针代替队列元素的移动,并将数组作为循环队列的操作空间。规定:front指向队头元素的位置;为区别空队和满队,满队元素个数比数组元素个数少一个。队列是限制在两端进行插入操作和删除操作的线性表。创建队列 :CreateQueue ()清空队列 :ClearQueue (Q)判断队列空 :EmptyQueue(Q)判断队列满 :FullQueue(Q)入队 :EnQueue (Q , x)允许进行删除操作的一端称为“队头”出队 :DeQueue(Q)原创 2024-10-26 14:13:02 · 229 阅读 · 0 评论 -
栈实现及应用
它是顺序表的一种,具有顺序表同样的存储结构,由数组定义,配合用数组下标表示的栈顶指针top(相对指针)完成各种操作。插入操作和删除操作均在链表头部进行,链表尾部就是栈底,栈顶指针就是头指针。当栈中没有元素时称为“空栈”。特点 :后进先出(LIFO)。栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈)允许进行操作的一端称为“栈顶”另一固定端称为“栈底”原创 2024-10-26 09:49:11 · 243 阅读 · 0 评论 -
单链表的操作实现
算法思路:设p,q 分别为链表中相邻两结点指针,求p->data+q->data为最大的那一组值,返回其相应的指针p即可。算法思路:设指针p、q分别指向表A和B中的结点,若p->data ≤q->data则p结点进入结果表,否则q结点进入结果表。3、设两单链表A、B按data值(设为整型)递增有序,将表A和B合并成一表A,且表A也按data值递增有序。2、设结点data域为整型,求链表中相邻两结点data值之和为最大的第一结点的指针。算法思路:依次取原链表中各结点,将其作为新链表首结点插入H结点之后。原创 2024-10-26 09:42:59 · 265 阅读 · 0 评论 -
线性表之单链表
依次读入表L=(a0,.....,an-1)中每一元素ai(假设为整型),若ai≠结束符(-1),则为ai创建一结点,然后插入表尾,最后返回链表的头结点指针H。算法思路:调用算法GetLinklist(h, i-1),获取结点ai-1的指针p(ai 之前驱),然后申请一个q结点,存入x,并将其插入p指向的结点之后。算法思路:从链表结点a0起,依次判断某结点是否等于x,若是,则返回该结点的地址,若不是,则查找下一结点a1,依次类推。链表的插入:即实现InsertLinklist(h, x, i,)。原创 2024-10-26 09:26:14 · 507 阅读 · 0 评论 -
线性表之顺序表
线性表L可用二元组形式描述:L=(D,R) 既线性表L包含数据元素集合D和关系集合R线性表的特征:对非空表,a0是表头,无前驱;清除线性表中重复的元素:对当前表中的每一个ai(0≤i≤n-2),依次与aj(i+1≤j≤n-1)比较,若与ai相等,则删除之。线性表的合并:一次取表Lb中的bi(i=0,1,......,n-1),若bi不属于,则将其插入表La中。插入:linsert(L,x,i)。取表中某一个元素:GetList(L,i),即ai。删除表L中第i个元素ai,且表长减1,要求0≤i≤n-1。原创 2024-10-26 09:19:59 · 433 阅读 · 0 评论 -
数据结构的基本概念
数据结构反映数据的内部构成,即数据由那部分构成,以什么方式构成,以及数据元素之间呈现的结构。顺序结构:将数据结构中各元素按照其逻辑顺序存放于存储器一片连续的存储空间中,如c语言的一维数组,表的L=(a1,a2......,an)的顺序结构。散列存储:根据数据元素的特殊字段(称为关键字key),计算数据元素的存放地址,然后数据元素按地址存放。索引存储:在存储数据的时,建立一个附加的索引表,即索引存储结构=数据文件+索引表。二、数据的存储结构(逻辑结构在计算机中的具体实现方法)图状结构--多个对多个,如图。原创 2024-07-25 14:50:27 · 240 阅读 · 0 评论