数据结构
文章平均质量分 53
DuckyLoser
这个作者很懒,什么都没留下…
展开
-
C语言 逆序打印链表(递归)
seqlink.h#include<stdio.h>#pragma once//单向链表//双向链表//typedef char LinkNodeType; typedef struct LinkNode { LinkNodeType data; struct LinkNode* next; //next = NULL 结束标志 不带环 ...原创 2018-03-29 14:53:05 · 715 阅读 · 0 评论 -
数据结构——复杂链表的复制
题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。对于复杂链表,一般会在next域的基础上再增加一个random域,这个指针会指向任意节点或者是一个NULL。 在对复杂链表进行复制时,也要对ran...原创 2018-08-22 14:56:01 · 280 阅读 · 0 评论 -
排序算法——归并排序
#include<stdio.h>#include<windows.h>void MergeArray(int* arr, int left, int mid, int right, int* tmp){ int index_left = left; int index_right = mid; int tmp_left = left; while...原创 2018-08-22 14:57:00 · 176 阅读 · 0 评论 -
搜索二叉树的基本操作(递归与非递归)
搜索二叉树: 在搜索二叉树中,根节点大于所有左子树节点的值,小于所有右子树节点的值。本博客中涉及到的基本操作有:1.递归与非递归的插入2.递归与非递归的删除3.递归与非递归的查找#include<stdio.h>#include<stdlib.h>typedef char SearchTreeType; typedef struct ...原创 2018-07-25 13:48:03 · 405 阅读 · 0 评论 -
迷宫求解 :1) 求简单迷宫是否存在路径 ; 2) 求多出口迷宫的最短路径 ;3) 求带环的多出口迷宫的最短路径
迷宫求解的非递归算法应用了之前的栈结构https://blog.csdn.net/DuckyLoser/article/details/79914855点击打开链接#include<stdio.h>#include"seqstack.h"#define ROW 6 //行#define COL 6 //列typedef struct Maze{ int...原创 2018-05-26 12:31:27 · 317 阅读 · 0 评论 -
二叉树的基本操作
tree.h#pragma once typedef char TreeNodeType; typedef struct TreeNode { TreeNodeType data; struct TreeNode* lchild; struct TreeNode* rchild; } TreeNode; void TreeInit(TreeNode** root); void...原创 2018-06-01 16:59:05 · 271 阅读 · 0 评论 -
堆的基本操作
heap.h// 1. 堆是一个完全二叉树 // 2. 堆有两种, 一种叫小堆(小根堆, 最小堆), // 一种叫大堆(大根堆, 最大堆). // 3. 以小堆为例, 这个树的根节点是这个树中的最小的元素 // 对于任意一个子树来说, 子树的根节点, 小于左右孩子节点的值. // 4. 以大堆为例, 这个树的根节点是这个树种的最大元素 // 对于任意一个子树来说, 子树...原创 2018-05-26 11:49:47 · 227 阅读 · 0 评论 -
数据结构-栈和队列笔试题
最小栈(两种方法) 两个栈实现一个队列 两个队列实现一个栈 判定字符串是否按照出栈顺序 共享栈(一个数组实现两个栈)#pragma once#include<stdio.h>#include<stdlib.h>typedef char StackType;typedef struct Stack{ StackType data; struc...原创 2018-05-18 17:22:19 · 276 阅读 · 0 评论 -
双向链表的基本操作2
dlinklist.h#pragma once #include<stdio.h> typedef char DLinkType; typedef struct DLinkNode { DLinkType data; struct DLinkNode* next; struct DLinkNode* prev; } DLink...原创 2018-04-06 15:07:32 · 204 阅读 · 0 评论 -
双向链表的基本操作1
dlinklist.h#pragma once#include<stdio.h> typedef char DLinkType; typedef struct DLinkNode { DLinkType data; struct DLinkNode* next; struct DLinkNode* prev; } DLinkNode; void DLinkLi...原创 2018-04-06 14:18:05 · 141 阅读 · 0 评论 -
顺序队列和链式队列 实现入队列, 出队列, 和取队首元素
首先要清楚队列的特点:先进先出一、顺序队列队尾插,对头出,同时和顺序栈相同,要动态申请内存。#pragma once#include<stdio.h>typedef char ListQueueType;typedef struct ListQueue{ ListQueueType* data; int size;//已有元素 int capaci...原创 2018-04-12 16:37:00 · 2326 阅读 · 0 评论 -
顺序栈, 链式栈的 初始化 销毁 入栈 出栈 取栈顶元素 方法的实现
栈的特点:后进先出一、顺序栈如果在顺序表的头部入栈,则需要将原有站内的元素依次后移,时间复杂度On,所以可以采用尾部入栈,入栈时只需要把size下标设置为指定元素,出栈时直接删除下标为size-1就行,stack.h#pragma once#include<stdio.h>typedef char stacktype;typedef struct SeqStack{ ...原创 2018-04-12 15:50:47 · 5280 阅读 · 0 评论 -
面试题(链表1)
在链表中有许多经典的笔试面试题,这里就写几个常见的吧。以下是头文件中的函数声明:seqlink.h#include<stdio.h>#pragma oncetypedef char LinkNodeType; typedef struct LinkNode { LinkNodeType data; struct LinkNode* next; } LinkNode...原创 2018-04-12 15:40:20 · 187 阅读 · 0 评论 -
单链表的冒泡排序
#include<stdio.h>#pragma once//单向链表//双向链表//typedef char LinkNodeType; typedef struct LinkNode { LinkNodeType data; struct LinkNode* next; //next = NULL 结束标志 不带环 //next...原创 2018-03-29 15:11:46 · 199 阅读 · 0 评论 -
单链表的逆置
#include<stdio.h>#pragma once//单向链表//双向链表//typedef char LinkNodeType; typedef struct LinkNode { LinkNodeType data; struct LinkNode* next; //next = NULL 结束标志 不带环 //next ...原创 2018-03-29 15:08:10 · 186 阅读 · 0 评论 -
C语言实现顺序表2
seqlist.h#include<stdio.h>#include<assert.h>#include<stdlib.h>#pragma once #define SeqListArrMax 100typedef char SeqListType;typedef struct SeqList{ SeqListType SeqListA...原创 2018-03-21 18:03:43 · 170 阅读 · 0 评论 -
数据结构——快速排序
1.首先定义一个基准值:tmp = arr[i],且让j--;当arr[j] > tmp;时 j 不动,开始i++;当arr[i] >tmp;时 交换arr[i]和arr[j]; 当i,j相遇时,交换tmp 与 arr[i] 此时相遇点左边都小于基准值,右边的都大于基准值,递归操作就行。#include<stdio.h>...原创 2018-08-22 15:19:52 · 704 阅读 · 0 评论