- 博客(7)
- 收藏
- 关注
原创 【算法与数据结构】双端队列示例
双端队列可以从两侧入队和出队:#include <stdio.h>#include <stdlib.h>struct dequeNode { int data; struct dequeNode *next; struct dequeNode *prev;};typedef struct dequeNode Node;typedef Node * ...
2019-08-25 18:12:00 233
原创 【算法与数据结构】优先级队列 - 用二叉堆求数据流中的第K大的元素
数据流中的第K大的元素,总数据个数不足K个元素时返回-1。#include <stdio.h>#include <stdlib.h>typedef struct { int* data; int count; int capacity;} KthLargest;void heap_up(KthLargest* obj, int loc)...
2019-08-24 10:58:24 195
原创 【算法与数据结构】 用栈实现队列、用队列实现栈
用栈实现队列效果(需要两个栈)思路:栈1负责进数据,每次要实现出队效果的时候,借助栈2颠倒顺序后出栈即可。元素出队后可以有两种方式:把出队后栈2中的数据再依次放入栈1。效率低。出队后,栈2中的数据不需要动,此时仍然用栈1入栈,栈2出栈,只有在栈2空的时候,再把栈1中的所有数据搬入栈1。高效。#include <stdio.h>#include <stdlib.h&...
2019-08-20 22:31:47 373
原创 【算法与数据结构】链表逆序、相邻两元素逆序、探测环路
链表常见操作有:链表逆序链表每相邻两个元素逆序,例如 1, 2, 3, 4 => 2, 1, 4, 3探测是否构成环路#include <stdio.h>#include <stdlib.h>typedef struct NodeStruct { int data; struct NodeStruct *next;} Node, *...
2019-08-19 23:07:53 188
原创 【算法与数据结构】无重复字符的最长子串 -暴力破解和滑动窗口
滑动窗口创建两个指针 start 和 end,分别指向窗口起止位置。对于长度为 n 的字符串,总共需要循环 n 次。每次循环时,end 指针加一,同时保存当前字符的下一个位置,然后判断是否出现重复字符。如果无重复,则继续下次循环如果重复,则把 start 移到记录中对应字符的下一个位置#include <stdio.h>#include <string.h>...
2019-08-18 12:28:21 288
原创 HashTable 示例 - 找出数组中和为指定值的两个数
数组 [2, 4, 6, 8],和为 8,则返回 [0, 2]数组 [2, 3, 3],和为 6,则返回 [1, 2]#include <stdio.h>#include <stdlib.h>typedef unsigned int Index;typedef struct node { int data; struct node *next;...
2019-08-17 22:40:57 272
原创 【算法与数据结构】堆 heap - 基于数组实现的完全二叉树
#include <stdio.h>#include <string.h>#define MAXSIZE 100typedef struct heap { int data[MAXSIZE]; int size;} heap;void heap_init(heap *h) { h->size = 0; memset(h-...
2019-08-14 22:52:03 198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人