数据结构 & 算法
文章平均质量分 62
记录数据结构和算法相关
会有那么一天oc
人生不止编程,还有美妙的生活和美好的人。心中装着美好,随处是风景 !
展开
-
排列算法(回溯法)
#include <iostream>using namespace std;void test(int x[]) { cout << x[0] << " " << x[1] << " " << x[2] << " " <&原创 2018-03-27 19:54:18 · 309 阅读 · 0 评论 -
递归求 a+b+c+d == 10, a、b、c、d 都大于0小于5
#include <iostream>using namespace std;void test(int x[]){ if (10 == x[0] + x[1] + x[2] + x[3]) { cout << x[0] << x[1] << x[2] << x[3] << endl; }}void ...原创 2018-03-27 19:42:44 · 491 阅读 · 2 评论 -
2015年第六届蓝桥杯C/C++程序设计本科B组省赛 牌型种数(结果填空)
牌型种数小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?思路:循环遍历每个点数所选择的张数,每个点数最多可以选4张,最少可以选0张即不选,每当牌总数达到13张则计数。答案:3598180法一:循环暴力#...原创 2018-03-26 19:52:57 · 294 阅读 · 0 评论 -
实现组合的递归算法
#include <stdio.h>#define true 1#define false 0int num[10]; int visit[10]; void dfs_creat(int index) { int i; if(index == 3) //组合的数的个数 { for (i = 0; i < 3; i++) {原创 2017-11-07 21:46:54 · 884 阅读 · 0 评论 -
实现全排列的递归算法
#include <stdio.h>#define true 1#define false 0int num[10]; //c++直接定义为 bool visit[10] int visit[10]; void dfs(int index) { int i; if(index == 3) { int i; //存放在原创 2017-11-07 21:22:30 · 383 阅读 · 0 评论 -
简单选择排序(c语言实现)
#include <stdio.h>#define T 1#define F 0#define MAXSIZE 10 //要排序数组个数的最大值typedef struct{ int r[MAXSIZE + 1]; //存储要排序数组,r[0]用作哨兵或临时变量 int length;}SqList;void swap(SqList *L, int i, in...原创 2018-04-03 17:04:36 · 1539 阅读 · 0 评论 -
二叉树的建立与遍历(c语言实现)
#include <stdio.h>#include <stdlib.h>typedef int ElemType; //这里用int 作为树结点的数据typedef struct BiTNode{ ElemType data; struct BiTNode *lchild, *rchild; //左右孩子指针}BiTNode, *BiTree;vo...原创 2018-03-28 19:12:17 · 12353 阅读 · 3 评论 -
C语言之enum的用法和注意事项(枚举类型)
一、一次定义多个常量。比如说我们的程序中处理问题时与星期几有关,可能要将星期一转换为数字1,星期二转换为数字2,一直到数字7,在不用enum关键字的情况下,可以使用define来定义,但是大家会觉得很麻烦,因为你要一个一个的定义,星期的还好说,只有7天,如果是月份呢,一年有12个月份,那就要写12个define,非常的不方面,如果利用enum的话就会非常的方便。#include<stdio....转载 2018-03-28 19:51:29 · 13423 阅读 · 2 评论 -
直接插入排序(c语言实现)
#include <stdio.h>#define T 1#define F 0#define MAXSIZE 10 //要排序数组个数的最大值typedef struct{ int r[MAXSIZE + 1]; //存储要排序数组,r[0]用作哨兵或临时变量 int length;}SqList;void swap(SqList *L, int i, in...原创 2018-04-05 14:03:43 · 829 阅读 · 0 评论 -
快速排序(c语言实现)
#include <stdio.h>#define T 1#define F 0#define MAXSIZE 10 //要排序数组个数的最大值typedef struct{ int r[MAXSIZE + 1]; //存储要排序数组,r[0]用作哨兵或临时变量 int length;}SqList;void swap(SqList *L, int i, in...原创 2018-04-05 15:00:47 · 19630 阅读 · 3 评论 -
冒泡排序(c语言实现)
#include <stdio.h>#define T 1#define F 0#define MAXSIZE 10 //要排序数组个数的最大值typedef struct{ int r[MAXSIZE + 1]; //存储要排序数组,r[0]用作哨兵或临时变量 int length;}SqList;void swap(SqList *L, int i, in...原创 2018-04-03 16:20:59 · 20972 阅读 · 1 评论 -
折半查找/二分查找(c语言实现)
#include <stdio.h>int binarySearch(int a[], int n, int key){ int low, high, mid; low = 1; //return 0 代表找不到,所以从最低下标从 1 开始 high = n; //定义最高下标为记录末位 while (low <= high) { mid...原创 2018-04-03 11:34:23 · 6004 阅读 · 2 评论 -
数据结构(队列)学习心得
数据结构(队列)学习心得 1、队列的定义: 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出(First In First Out)的线性表,简称FIFO. 允许插入的一端称为队尾,允许删除的一端称为队头。假设队列是 q = (a1, a2, ….., an),如下图所示:2、循环队列: front 指针指向队头元素 rear 指针指向队尾原创 2017-08-04 16:36:30 · 6661 阅读 · 0 评论 -
链表的增删查改(C语言实现)
#include <stdio.h>#include <stdlib.h>//malloc#define T 1#define F 0typedef int ElementType;//分号!!!typedef int Status;typedef struct Node{ ElementType value; struct Node* next;...原创 2018-03-22 22:13:33 · 746 阅读 · 0 评论 -
线性表的顺序存储结构(c语言实现)
#include <stdio.h>#define MAXSIZE 20#define T 1#define F 0typedef int Status;typedef int ElemType;typedef struct { ElemType data[MAXSIZE]; int length;}SqList;void init(SqList *L);...原创 2018-03-23 15:43:37 · 1292 阅读 · 0 评论 -
栈的顺序存储结构(c语言实现)
#include <stdio.h>#define MAXSIZE 20#define T 1#define F 0typedef int Status;typedef int ElemType;typedef struct { ElemType data[MAXSIZE]; int top;}SqStack;void init(SqStack* S);...原创 2018-03-23 16:01:48 · 565 阅读 · 0 评论 -
栈的链式存储结构(c语言实现)
#include <stdio.h>#include <stdlib.h>#define T 1#define F 0typedef int Status;typedef int ElemType;typedef struct StackNode//链式存储的结点{ ElemType data;//数据域 struct StackNode* nex...原创 2018-03-23 16:42:00 · 1189 阅读 · 0 评论 -
队列的顺序存储结构(c语言实现)
#include <stdio.h>#define T 1#define F 0#define MAXSIZE 20typedef int Status;typedef int ElemType;typedef struct{ ElemType data[MAXSIZE]; int front; int rear;}SqQueue;Status init...原创 2018-03-25 13:34:41 · 2985 阅读 · 0 评论 -
队列的链式存储结构(c语言实现)
#include <stdio.h>#include <stdlib.h>#define T 1#define F 0#define MAXSIZE 20typedef int Status;typedef int ElemType;typedef struct QNode //结点结构{ ElemType data; struct QNode...原创 2018-03-25 13:36:41 · 2142 阅读 · 0 评论 -
结构体定义的几种常见方式
若struct后面接的是名字,则其为该结构体的名称。第一种是最基本的结构体定义,其定义了一个结构体A。struct A //第一种{ int a;};第二种则是在定义了一个结构体B的同时定义了一个结构体B的变量m。struct B //第二种{ int b;}m;第三种结构体定义没有给出该结构体的名称,但是定义了一个该结构体的变量...原创 2018-03-25 14:06:35 · 2054 阅读 · 3 评论 -
单词逆序(c/c++语言实现)
c语言实现单词逆序输出。如:"I am from shanghai"输出: "shanghai from am i"#include <stdio.h>#include <string.h>void swap(char* head, char* tail);//实现字符串逆序int main(){ char str[] = "I am from shangha...原创 2018-03-25 15:22:14 · 3961 阅读 · 0 评论 -
双向循环链表简单的插入、删除、修改以及查找功能的实现
```#include <stdio.h>#include <stdlib.h>#define T 1#define F 0typedef int ElementType;typedef int Boolean;typedef struct node* Node;struct node //定义双向的结构体{ struct node* prior; ElementType原创 2017-05-21 21:01:33 · 1016 阅读 · 0 评论