数据结构
文章平均质量分 79
BoxJam
要做一个绅士
展开
-
C语言——栈的实现(顺序栈,两个顺序栈共享空间,链式栈)
1.什么是栈栈是一种只能在一端进行插入或者删除操作的线性表)。其中允许进行插入或者删除操作的一端称为栈顶。栈的插入和删除一般叫入栈和出栈。栈的顺序存储结构叫做==顺序栈==,栈的链式存储结构叫做==链栈==。2.栈的特点栈的特点是==后进先出==3.顺序栈头文件#ifndef Stack#define Stack#define SIZE 10#includ...原创 2018-09-04 13:27:54 · 1596 阅读 · 0 评论 -
哈夫曼树的创建及其编译码
#include<stdio.h>#include<algorithm>#define N 1000#define M 2 * N - 1typedef struct { int weight; int parent; int Lchild; int Rchild;}HTNode, HuffmanTree[N + 1];typedef struct...原创 2018-12-21 23:19:36 · 439 阅读 · 6 评论 -
有向图的DFS,BFS
题目描述从键盘接收有向图的顶点集,弧集,创建有向图,并完成下列任务:(1)计算结点的出度、入度以及度;(2) 从第一个顶点出发,求一个深度优先遍历序列;(3) 从第一个顶点顶点出发,求一个广度优先遍历序列。 注意:以用户输入各个顶点的顺序为顶点的序号。在深度和广度优先遍历中,优先选择序号小的顶点。输入第一行输入两个整数,以空格隔开,分别代表图的顶点数n和弧数e。(顶点个数<=...原创 2018-12-09 23:36:42 · 2924 阅读 · 2 评论 -
求无向图的连通分支数
题目描述从键盘接收图的顶点集,关系集,创建无向图。第一行依次输入图的顶点个数n,关系个数k,以空格隔开。顶点个数<=20第二行依次输入顶点值,类型为字符。接下去有k行,每行为两个字符 u 和 v,表示节点u 和 v 连通。格式为【uv】,中间不用空格间隔。计算连通分量个数并输出。输出一个整数,表示连通分量个数。样例输入6 7ABCDEFABAEBCCDDADB...原创 2018-12-09 23:29:56 · 8009 阅读 · 0 评论 -
有向图的创建与遍历(邻接链表)
下面介绍一下,有向图的创建与遍历(使用邻接链表法)思路:在顶点结构体里面,将第一条边用指向边的结构体的指针firstedge存储即struct EdgeNode * next; 1.再输入,边的个数,顶点的个数。2.输入所有节点的字母3.最后再输入所有的边的字母(例如,输入AB就代表,A的出度指向B)即可相应的注释都写在代码里#include<stdio.h>#incl...原创 2018-12-08 13:19:05 · 2950 阅读 · 2 评论 -
C语言中缀转后缀(栈实现)
#include<stdio.h>#include<stdlib.h>#include<string.h>#define maxsize 20typedef struct st2 { int top; char str[maxsize];}CharStackSize, *CharStack;//初始化void init(CharStack...原创 2018-10-07 09:29:33 · 2768 阅读 · 0 评论 -
循环队列(c语言版)
C语言版循环队列#ifndef QUEUE#define QUEUE#define maxsize 4typedef struct { int data[maxsize]; int front; int rear;}*Queue, Node;#endif#include<stdio.h>#include<stdlib.h>#include&l...原创 2018-09-23 11:33:52 · 311 阅读 · 0 评论 -
括号匹配问题(数据结构——栈)
题目描述: 思路:代码实现#ifndef STACK#define STACKtypedef struct { char str[200]; int top;}*stack, Stack;#endif#define max 20#include<stdio.h>#include<stdlib.h>#inc...原创 2018-09-16 09:47:56 · 5172 阅读 · 0 评论 -
C语言——顺序表和单链表的逆置
顺序表的逆置#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#define MAX 100typedef struct node { int num[MAX]; int length;} *Link, Node;void reverse(int * num, int length){ int i = 0; ...原创 2018-09-09 13:04:24 · 6521 阅读 · 1 评论 -
约瑟夫环(使用C语言单向循环链表来解决)
题目描述 编号为1,2,…,n的n个人按顺时针方向围坐在一张圆桌周围,每人持有一个密码(正整数)。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针方向自1开始报数,报到m时停止报数,报m的那个人出列,将他的密码作为新的m值,从他顺时针方向的下一个人开始重新从1报数,数到m的那个人又出列;如此下去,直至圆桌周围的人全部出列为止。要求按出列顺序输出n个人的编号。输入 第...原创 2018-09-11 13:53:58 · 3041 阅读 · 5 评论 -
C语言——单链表的增删改查
我们需要先先定义一下链表的结构#ifndef LIST_H#define LIST_H#define L 50//引入头文件#include&lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;stdbool.h&gt;#include&lt;stdlib.h&gt;//定义链表数据域的数据结构体type原创 2018-09-04 17:18:11 · 7468 阅读 · 6 评论 -
C++常用STL库的简单学习
string#include<string>#include<iostream>using namespace std;int main(){ string s1;//初始化字符串,空字符串 cin >> s1; string s2 = s1; //拷贝初始化,深拷贝字符串 string s3 = "I am Yasuo"; //...原创 2019-03-31 22:19:08 · 386 阅读 · 1 评论