数据结构
一些数据结构的算法
故园归梦
加油!
展开
-
C语言括号匹配
给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。输入格式:输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。输出格式:如果括号配对,输出yes,否则输出no。输入样例1:sin(10+20)输出样例1:yes输入样例2:{[}]输出样例2:no思路:题目输入一些字符串,我们就先保留括号之类的,判断是否匹配。如果遇到左括号,就入栈,如果遇到一个右括号,就与栈顶元原创 2020-05-16 16:10:02 · 4410 阅读 · 1 评论 -
数据结构大作业-哈夫曼树的应用
#include<stdio.h>#include<stdlib.h>#define MAXBIT 100#define MAXLEAF 30#define MAXNODE MAXLEAF*2-1#define MAXQZ 10000typedef struct{ int bit[MAXBIT]; int start;}HCodeType;typedef struct{ int weight; int parent; int lchild; in原创 2020-06-30 16:04:00 · 3439 阅读 · 1 评论 -
查找字符串中的子串数目
#include <stdio.h>#include <string.h>int string_find( char str[], char substr[] ){ int i, j, check ,count = 0; int len = strlen( str ); /*取得字符串长度,不包括'\0'*/ int sublen = strlen( substr ); for( i = 0; i < len; i++ ) { check原创 2020-06-26 19:27:38 · 1254 阅读 · 0 评论 -
C语言银行业务队列简单模拟
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。输出格式:按业务处理完成的顺序输出顾客原创 2020-05-17 09:10:25 · 5712 阅读 · 3 评论 -
C语言堆栈模拟队列
设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈S是否已满,返回1或0;int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0;void Push(Stack S, ElementType item ):将元素item压入堆栈S;ElementType Pop(Stack S ):删除并返回S的栈顶元素。实现队列的操作,即入队void AddQ(Elemen原创 2020-05-17 11:39:04 · 1258 阅读 · 0 评论