![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
数据结构
Cipher007
这个作者很懒,什么都没留下…
展开
-
[数据结构]多维数组
#include <stdio.h>#include <stdlib.h>#include <stdarg.h> //标准头文件,提供宏va_start、va_arg和va_end用于存取变长参数表#define MAX_ARRAY_DIM 8 //假设数组维数最大值为8typedef struct{ int *base; //数组元素基址 int dim; //数组维数 int *bound; //数组维界基址,即用于存储每一原创 2020-11-12 16:16:41 · 292 阅读 · 0 评论 -
[数据结构]串
typedef struct{ char *ch; int length;}HString; void InitStr(HString &T){ T.ch=NULL; T.length=0;}int StrAssign(HString &T,char *chars){ //生成一个值等于串常量chars的串T if(T.ch) free(T.ch);//释放T中原有的串的空间 int cnt;//记录串常量的长度 char *c; for(cnt=0,c=c原创 2020-11-05 16:27:40 · 148 阅读 · 0 评论 -
Vector模板类
typedef int Rank;#define DEFAULT_CAPACITY 3//默认的初始容量template<typename T>class Vector{protected: Rank _size;//规模 int _capacity;//容量 T *_elem;//数据区 void copyFrom(T const *A,Rank lo,Rank hi); void expand();//空间不足时扩容public: /原创 2020-09-29 20:09:16 · 611 阅读 · 0 评论 -
KMP算法
KPM算法简介:A B C A B C D J B N K (文本串)A B C A B B (模式串)例如这个文本串与模式串,前5个元素都匹配,直到第六个元素不匹配,按照暴力算法,应该将模式串向后移动一个单位,在依次比较,而KMP算法的做法是:A B C A B C D J B N K A B C A B BKPM算法分析:当文本串与模式串比对的时候,如果在某个位置比对终止,此时有 T[i]!=P[j] ,那么要设法保持文本串指针不回溯,只移动模式串的指针,现在关键就是计算模式串移动几个原创 2020-09-24 21:47:24 · 118 阅读 · 0 评论 -
leetcode-反转链表
题目描述:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000方法一:双指针/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNod.原创 2020-09-13 11:48:35 · 116 阅读 · 0 评论 -
leetcode-两两交换链表中的节点
题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3./** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(.原创 2020-09-12 21:43:36 · 68 阅读 · 0 评论 -
leetcode-有效的括号(stack)
题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: true解题思路遍.原创 2020-09-12 21:00:10 · 396 阅读 · 0 评论 -
运行时间测试
一.概述测试程序指定部分跑了多长时间用 **clock()**函数作用:捕捉从程序开始运行到clock()被调用所消耗的时间,单位是clock tick,表示“时钟打点”。常数CLK_TCK表示机器时钟每秒所走的时钟打点数。头文件:<time.h>二.测试代码#include<stdio.h>#include<time.h>//注意添加clock()函数的头文件clock_t start,stop;//为clock()函数返回值类型double durat原创 2020-05-23 17:42:03 · 1746 阅读 · 0 评论