随笔分类 -  数据结构

数据结构必须要会,加油!加油!
摘要:在单链表中,每个结点含有5个正整数的数据元素(若最后一个结点的数据元素不满5个,用0填充),试编写一个算法查找值为n(n>0)的数据元素所在的结点指针及在该结点中的序号,若链表中不存在该数据元素,则返回空指针 算法描述如下: 阅读全文
posted @ 2016-08-02 22:53 我在这儿 阅读(278) 评论(0) 推荐(0) 编辑
摘要:"遍历"是二叉树各种操作的基础,可以在遍历过程中对结点进行各种操作,如:对于一棵已知树可求结点的双亲,求结点的孩子结点,判定结点所在的层次等,反之也可在遍历二叉树的过程中生成结点,建立二叉树的存储结构 按先序序列建立二叉树的二叉链表的过程: ABC##DE#G##F###(#代表空) //中序、后序 阅读全文
posted @ 2016-05-16 18:38 我在这儿 阅读(262) 评论(0) 推荐(0) 编辑
摘要:1.已知完全二叉树的层次遍历,求其前、中、后序 测试样例: ) 对于例1: 前序遍历:ABDGIJKLCEFH 中序遍历:DIGJLKBAECHF 后序遍历:ILKJGDBEHFCA 对于例2: 前序遍历:eadcbjfghi 中序遍历:abcdjefhgi 后序遍历:bcjdahigfe //用顺 阅读全文
posted @ 2016-05-10 09:28 我在这儿 阅读(603) 评论(0) 推荐(0) 编辑
摘要:设计在链式存储结构上交换二叉树中所有结点左右子树的算法 //注意到左右子树交换结点交换是一个递归的过程,具体操作如下: //判断二叉树是否为空,若为空,则无需交换,否则递归交换左右孩子的指针 阅读全文
posted @ 2016-05-07 17:07 我在这儿 阅读(347) 评论(0) 推荐(0) 编辑
摘要:单源点的最短路径问题:给定带权有向图G和源点V,求从V到G中其余各顶点的最短路径 Dijkstra算法描述如下: (1)用带权的邻接矩阵arcs表示有向图,arcs[i][j]表示弧<vi,vj>上的权值,若<vi,vj>不存在,则置arcs[i][j]=INF。 vis为已找到从v出发的最短路径的 阅读全文
posted @ 2016-04-18 19:24 我在这儿 阅读(345) 评论(0) 推荐(0) 编辑
摘要:已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试设计一个高效的算法,删除表中所有值大于mink和且小于maxk的元素(若表中存在这样的元素),同时释放被删结点空间(注意:mink和maxk是给定的两个参变量。它们的值可以和表中的元素相同,也可以不同) 思路:找到第一个大于mink的数,标 阅读全文
posted @ 2016-04-17 22:13 我在这儿 阅读(3022) 评论(0) 推荐(0) 编辑
摘要:线性表(a1,a2,a3,...,an)中元素递增有序且按顺序存储于计算机内,要求设计一算法完成: 1)用最少时间在表中查找元素数值为x的元素 2)若找到将其与后继元素位置相交换 3)若找不到将其插入表中并使表中元素仍然递增有序 阅读全文
posted @ 2016-04-03 12:59 我在这儿 阅读(825) 评论(0) 推荐(0) 编辑
摘要:将两个非递减有序顺序表A和B合并成一个新的非递减有序顺序表C,已知顺序表A和B的的元素个数分别为m和n 思想:设定3个指针i,j,k分别指向A、B、C的首地址,然后进行A[i]、B[j]的比较,A[i]>B[j],则将B[j]赋值给C[k],同时j,k自增,否则对A进行相似的操作,直到A、B中至少有 阅读全文
posted @ 2016-04-01 23:54 我在这儿 阅读(503) 评论(0) 推荐(0) 编辑
摘要:以一元多项式加法运算为例: A,B可用线性链表可以表示为: “和多项式”链表如下(图中的长方框表示已经被释放的结点): #include <stdio.h> #include <stdlib.h> typedef struct Polyn{ int data; int index; struct P 阅读全文
posted @ 2016-02-03 21:24 我在这儿 阅读(4935) 评论(0) 推荐(2) 编辑
摘要:参照:http://www.cnblogs.com/bluestorm/p/3167424.html getche()接收换行时会解析成‘\r’ #include <stdio.h> #include <stdlib.h> struct list{ char data; struct list *n 阅读全文
posted @ 2016-02-03 20:36 我在这儿 阅读(326) 评论(0) 推荐(0) 编辑
摘要:1已知head是非空单链表的头指针,p结点既不是头结点,也不是尾结点,q是尾结点的前驱结点。且所有结点都已具有如下形式的结构定义:struct node{ int data; struct node *next;}*p,*q;则删除链表的尾结点可用以下语句:while(p->next->next... 阅读全文
posted @ 2016-01-22 21:42 我在这儿 阅读(663) 评论(0) 推荐(0) 编辑
摘要:思路:设置两个栈,栈1起入队的作用、栈2起出队的作用.入队时,所有元素进栈1,栈满时会通过realloc函数追加存储空间并且保存原来栈1的元素.出队时,先判断栈2是否为空,若为空,则会判断栈1是否为空,栈1为空,则说明队列为空,栈1不为空则将栈1的元素全部出栈并入栈2,栈2满时依然通过realloc... 阅读全文
posted @ 2015-12-31 11:29 我在这儿 阅读(343) 评论(0) 推荐(0) 编辑

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示