数据结构
52Tiramisu
这个作者很懒,什么都没留下…
展开
-
【栈】专辑
前提:定义格式:stack容器内元素的访问栈是一种 后进先出 的数据结构,所以只能通过 top() 来访问栈顶元素。代码示例:stack常用函数代码示例:原创 2024-01-18 10:13:55 · 369 阅读 · 0 评论 -
【链表】专辑
题目 考点 分值 难度原创 2021-03-09 10:26:36 · 124 阅读 · 2 评论 -
排序算法【严版数据结构】
10.2 插入排序10.2.1 直接插入排序将 一个记录 插入到 已排好序的有序表中,从而得到一个新的、记录数增1的有序表。第i趟直接插入排序的操作:在含有i-1个记录的有序子序列 r[1...i-1] 中插入一个记录 r[i] 后,变成含有 i 个记录的有序子序列 r[1...i]。#include <cstdio>#define MAXSIZE 20//typedef int KeyType;typedef struct { int key;}RedTy...原创 2021-03-18 12:06:50 · 105 阅读 · 0 评论 -
递推
如果要求出 dp[i][j],那么一定要先求出它的两个子问题:①从位置(i+1, j) 到达最底层的最大和 dp[i+1][j];②从位置(i+1, j+1) 到达最底层的最大和 dp[i+1][j+1]。状态转移方程把状态 dp[i][j] 转移为dp[i+1][j] 和dp[i+1][j+1]边界:最后一层的dp值总是等于元素本身。从这些边界出发,通过状态转移方程扩散到整个 dp数组。数塔问题// 03.16 10:00-12:00#inclu...原创 2021-03-16 11:56:43 · 82 阅读 · 0 评论 -
递归
全文摘自晴神视频递归剑法递归剑法一、调用自己就是调用别人;二、描述清楚一层做的事情;三、不要陷入到层层展开中。递归的定义:在函数中调用自己什么是调用别人:------>什么是调用自己:-------->-------->特性:函数A 针对不同的参数,里面的定义是几乎一样的,意味着一定可以写出来一个比较统一的函数,来代表所有参数的情况,这样只需要把函数A定义一次就可以了。这里的 A(N=1),是一个函数,内部的变量空间就和外面是..原创 2021-01-30 12:00:54 · 86 阅读 · 0 评论 -
习题3.5 求链表的倒数第m个元素 (20分)
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素。函数接口定义:ElementType Find( List L, int m );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */...原创 2020-03-26 15:34:03 · 1596 阅读 · 0 评论 -
数据结构mooc第一章 基本概念
时钟打点#include <stdio.h>#include <time.h>clock_t start, stop;//clock_t是clock()函数返回的变量类型double duration;//记录被测函数运行时间,以秒为单位int main() { // 不在测试范围内的准备工作写在clock()调用之前 start = clock(...原创 2020-03-09 22:40:51 · 196 阅读 · 0 评论 -
散列——处理冲突的方法
思路:换个位置:开放定址法(Open Addressing)同一位置的冲突对象组织在一起:链地址法()开放地址法(线性探测、平方探测)一旦发生了冲突(该地址已经有其它元素),就按某种规则去寻找另一地址1.线性探测法(LInear Probing)2.平方探测法(Quadratic Probing)—二次探测3.链地址法(分离链...原创 2020-02-05 15:23:46 · 1081 阅读 · 0 评论 -
散列
构造散列函数字符关键词原创 2020-02-05 14:33:24 · 95 阅读 · 0 评论 -
贪心——区间贪心
区间不相交问题:给出N个开区间(x, y),从中选择尽可能多的开区间,使得这些开区间两两没有交集。先对左端点 从大到小 排序,如果左端点相同就对右端点从小到大排序。// 区间不相交问题#include <cstdio>#include <algorithm>using namespace std;const int maxn = 110;//...原创 2020-02-01 21:22:12 · 200 阅读 · 0 评论