
数据结构
fastaway
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图
无向图邻接矩阵(包含DFS树,BFS树)#define VertexData char#define NumVertices 100#define EdgeData inttypedef struct { VertexData verlist[NumVertices]; //顶点表 EdgeData edge[NumVertices][NumVertices]; //邻接矩...原创 2019-12-14 20:39:40 · 144 阅读 · 0 评论 -
树
遍历算法是最核心的算法树的逻辑结构特点:除根结点之外,每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。即一对多的关系,反映了结点之间的层次关系。...原创 2019-12-14 13:17:39 · 150 阅读 · 0 评论 -
含一个链域的结点组成的线性表的双向查找
试设计一种环形表,使表的每个结点只包含一个链域而又能够有效地对其进行两个方向的查找。然后,设计一个算法,从表的一端开始,按顺时针方向访问这个表的每个结点。这道题利用异或运算的性质,可以得到(prev ^ next) ^ next = prev; (prev ^ next) ^ prev = next。故而只用存prev ^ next就可以了。#pragma warning(disabl...原创 2019-12-09 17:50:57 · 160 阅读 · 0 评论 -
稀疏矩阵(三元组)快速转置
#pragma warning(disable :4996)#include <stdio.h>#include <string.h>#define max 100struct three { int row, col;//行 列 int data;};typedef struct reararr { three a[max]; int m, n, x...原创 2019-12-09 00:32:38 · 875 阅读 · 0 评论 -
两个栈实现队列
使用两个栈来实现一个队列,完成队列的Enqueue和Dequeue操作#pragma warning(disable :4996)#include <stdio.h>#include "stack.h"bool empty_queue(STA s1, STA s2) { return empty(s1) && empty(s2);}void enqu...原创 2019-12-08 22:07:59 · 184 阅读 · 0 评论 -
栈最值元素的获取
设计一种数据结构,满足栈的“后进先出”性质,实现以下3种操作:1)Push(v,S):将v压入到栈S;2)Pop(S):弹出栈顶元素;3)Maxelement(S):返回栈S中最大元素;并且使每种操作的时间复杂度尽可能的低。#pragma warning(disable :4996)#include <stdio.h>#define maxlength 1000t...原创 2019-12-08 21:45:29 · 481 阅读 · 0 评论 -
稀疏矩阵的快速转置
在矩阵中有许多值相同的元素或者是零元素。有时为了节省存储空间,可以对这类矩阵进行压缩存储。所谓的压缩存储是指:为多个值相同的元值分配一个存储空间;对零元不分配空间。稀疏矩阵在m*n的矩阵中,有t个元素不为零。零α=t/m*n,称 α为矩阵的稀疏因子。通常认为α<=0.05时称为稀疏矩阵。对于稀疏矩阵的非零元我们有下面这个表示:如:((1,2,12),(1,3,9),(3,1,-3...转载 2019-12-05 23:55:48 · 6671 阅读 · 1 评论 -
KMP实现(C语言版)
#include <stdio.h>#include <string.h>void getnext(char *ptr, int *next) { int k = -1; next[0] = -1; int x = strlen(ptr); for (int i = 1; i < x; ++i) { while (k > -1 &&...原创 2019-12-05 22:17:08 · 141 阅读 · 0 评论 -
KMP算法实现(转载)
今天学习kmp算法,看了好多大佬的文章,总算是解决了理解层面上的问题,现在和大家分享一下。kmp算法是什么KMP算法是一种改进的字符串匹配算法主串 为:a b a c a a b a c a b a c模式串 为:a b a c a b目的就是为了找出模式串在主串中的起始位置。a b a c a a b a c a b a c 此时起始位置是6。我们就是为了确定这个位置为什么要用...转载 2019-12-04 22:53:42 · 117 阅读 · 0 评论 -
数据结构 单向环形链表的逆置
设计算法,将一个单向环形链表反向。头元素变成尾 元素,尾元素变成新的头元素,依次类推。void Reverse(link *r) { link *head, *pr; head = r->next; pr = r->next; List q = r->next; while (head->next != r) { q = LInsert(head->...原创 2019-11-24 10:53:33 · 370 阅读 · 1 评论 -
静态链表操作集合
利用静态链表实现集合运算(A-B)U(B-A):从键盘输入集合元素。#pragma warning(disable :4996)#include <stdio.h>#include "static_linklist.h"void create_set(space s[], position *L, position avail) { printf("Input the n...原创 2019-11-23 23:03:30 · 516 阅读 · 0 评论 -
数据结构 链表的相交
已知两个单链表,判断是否相交?没有测试,裸写的,有错误望指正。。。相关头文件在blog里面https://blog.youkuaiyun.com/weixin_43172803/article/details/103193039入环结点的判断函数List entering_node(List head) { List p, fast, slow; int flag = 0; p = h...原创 2019-11-22 22:39:53 · 200 阅读 · 0 评论 -
数据结构 单链表——环的判断
判断链表是否有环? 若有,找出环入口结点?相关头文件在blog里面https://blog.youkuaiyun.com/weixin_43172803/article/details/103193039#pragma warning(disable :4996)#include <stdio.h>#include "linetable_linktable.h"List ini...原创 2019-11-22 21:58:18 · 158 阅读 · 0 评论 -
数据结构 单链(无环)表的逆置
相关头文件在blog里面https://blog.youkuaiyun.com/weixin_43172803/article/details/103193039#pragma warning(disable :4996)#include <stdio.h>#include "linetable_linktable.h"List init(List head) { head = (...原创 2019-11-22 21:28:46 · 161 阅读 · 0 评论 -
线性表
线性表1.顺序表linetable_array.h#include <stdio.h>#define max 100#define ElemType intstruct List { ElemType elements[max]; int last;};typedef int position;//L.elements[p]//L.lastvoid Ins...原创 2019-11-22 20:59:03 · 320 阅读 · 0 评论 -
数据结构 求单链表倒数第k个元素与中间元素
已知一个单链表,求倒数第k个元素。相关头文件在blog里面#pragma warning(disable :4996)#include <stdio.h>#include "linetable_linktable.h"List init(List head) { head = (List)malloc(sizeof(link)); head->next = NU...原创 2019-11-22 20:58:28 · 214 阅读 · 0 评论