数据结构(个人学习)
马铃薯煲土豆
头发要掉光咯...
展开
-
C语言中字符串碰到的坑
c语言中没有string类型(定义会报错 string name;编译时会出错)那要怎么定义字符串呢?首先需要 char s[20];首先是静态赋值: char s[20]=“1245”;可是当需要动态赋值时假设有一字符串数组:char *str[5]={"Apple","Banana","Water","Orange","Milk"};char s[20]=str[1];//编...原创 2019-12-05 15:09:27 · 394 阅读 · 0 评论 -
将顺序存储的数组转换为完全二叉树
#include<iostream>#include<stdio.h>#include<cstring>#include<stdlib.h>#include<queue>using namespace std;typedef struct BiNode{ int data; BiNode *lchild,*rc...原创 2019-11-29 21:37:39 · 722 阅读 · 0 评论 -
判断平衡二叉树
#include <iostream>#include <stdlib.h>using namespace std;typedef struct Binode{ char data; Binode *lchild,*rchild;}Binode,*Bitree;void creatBitree(Bitree &T){ //构造二叉树,...原创 2019-11-18 18:43:36 · 116 阅读 · 0 评论 -
森林的先序遍历与中序序列结合的问题
已知森林的先序遍历序列:ABEDCFGHIJ中序遍历序列:EBFCDAGIJH其实森林的先序和中序对应着二叉树的先序和中序遍历,因此可以先根据中序和先序构造出二叉树在转换为森林。 A A G H / \ / \ ...原创 2019-11-12 19:33:18 · 8861 阅读 · 3 评论 -
希尔排序
希尔排序又称 “缩小增量排序“假设有一个无序的数组为 {9,5,7,6,2,4,10,1,3,8},共有10个数 int a[10]={9,5,7,6,2,4,10,1,3,8};主要思想:根据步长来分割数组,步长分别为 5=(10/2) 2=(5/2) 1=(2/2);都是向下取整,直到步长为1;步长为5时分割的数组是 {9,4},{5,10},{7,1},{6,3},{2,8}...原创 2019-10-31 20:43:32 · 133 阅读 · 0 评论 -
将单链表置为递增有序的链表(带头节点的)
#include <iostream>#include <stdlib.h>using namespace std;typedef struct LNode{ int data; LNode *next;}LNode,*LinkList;void CreatLinkList(LinkList &L){ LNode *r,*s; ...原创 2019-10-28 22:59:32 · 641 阅读 · 0 评论 -
链表就地逆序(PS: 利用:头插法)
#include <iostream>#include <stdlib.h>using namespace std;typedef struct LNode{ int data; LNode *next;}LNode,*LinkList;void CreatLinkList(LinkList &L){ LNode *r,*s; ...原创 2019-10-28 21:48:00 · 131 阅读 · 0 评论 -
C++链表实现倒序输出(递归实现)
解题思路:先进后出 - - - - - 栈 - - - - -递归#include <iostream>#include <stdlib.h>using namespace std;typedef struct LNode{ int data; LNode *next;}LNode,*LinkList;void CreatLinkList(Lin...原创 2019-10-28 20:58:58 · 1498 阅读 · 0 评论 -
C++链队的基本操作
链队的关键还是先进先出,后加入的数据应该在队尾。#include <iostream>#include <stdlib.h>using namespace std;typedef struct QNode{ int data; //存放数据 QNode *next; //指向下一个元素}QNode,*QueuePtr;typedef struc...原创 2019-10-26 16:33:32 · 332 阅读 · 0 评论 -
C++实现队列的基本操作
队列的关键在于先进先出#include<iostream>#include<stdlib.h>using namespace std;#define QUEUE_MAX_SIZE 5typedef struct{ int *front; int *rear; int queuesize;}Queue; void InitQueue(Qu...原创 2019-10-26 14:59:05 · 1328 阅读 · 0 评论 -
C++实现栈的基本操作(顺序栈)
#include<iostream>#include<stdlib.h>using namespace std;#define STACK_MAX_SIZE 100typedef struct{ int *base; int *top; int stacksize;}SqStack;void InitStack(SqStack *S){/...原创 2019-10-26 14:21:38 · 631 阅读 · 0 评论 -
C++ 实现图的广度和深度优先遍历
广度优先 BFS广度优先类似于树的的层次遍历,核心用到 队列的思想深度优先 DFS深度优先类似于树的先根遍历 , 核心用到递归的思想#include <iostream>#define Maxvex 100#include <queue>bool visited[Maxvex];//在深度优先中是否被遍历过typedef char VertexType;//...原创 2019-10-22 18:53:31 · 636 阅读 · 0 评论