数据结构
zhang_li_yang
这个作者很懒,什么都没留下…
展开
-
队列实现对有n个元素的数组循环左移k位
基本思想:利用队列求解将使问题简单化,将数组的0-(k-1)存入队列,然后将数组k-(n-1)依次左移k位,然后顺序出列,具体算法如下:#include#include#define MAXSIZE 100typedef struct { int data[MAXSIZE]; int front,rear;}SeqQueue,*PSeqQueue;PSeqQueue Init_原创 2013-03-28 21:34:10 · 3583 阅读 · 0 评论 -
poj2503-字典树&&二分查找&&快速排序
一看这个题目第一感觉很水,但是当把代码写了,,,交上去,,超时!!!应该早就想到的,,现在哪里那么多水题啊。。。。言归正传:题目的意思就输入一系列单词两两对应,相当于一个单词是另外一个解释!要你输出一个单词,看是否前面输入中有他的解释!!!!二分查找代码:#include const int MAX = 100001;typedef struct{ char e[11]原创 2013-04-19 21:00:40 · 770 阅读 · 0 评论 -
杭电1238—搜索入门题目&&字符串处理
开始感觉这题很简单,直接暴力就行!!!但是显而易见,暴力是解决不了问题的,,特别是这题作为亚洲区预选赛的题目、、、、就更没那么容易过了。题目大意是这样的:给定一些字符串,类似最长公共子串,但是有点不同的是这题要考虑反串的情况,即如果反串满足最长子串,那同样是可以的。。。 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1238原创 2013-04-21 15:15:32 · 762 阅读 · 0 评论 -
杭电1239—搜索
题目大意: a.给定整数m,a,b(4 1 b.需要找到两个数(不妨设为p,q)满足以下条件: p,q均为质数; p*q a/b c.输出所有满足以上条件的p,q中乘积最大的一对p,q实现代码1(本人的):#include#includeint is_prime(int n){//判断是否是素数,是原创 2013-04-21 17:33:05 · 677 阅读 · 0 评论 -
数据结构课程设计-大数相乘
#include#include#define MAXSIZE 500typedef struct node{ int data[MAXSIZE]; int length;}SeqList,*PSeqList;PSeqList Init_Seqlist(){ PSeqList PL; PL=(PSeqList)malloc(sizeof(SeqList)); if(PL)原创 2013-06-17 10:58:39 · 1587 阅读 · 0 评论 -
数据结构课程设计-发牌程序1
#include#include#include#includevoid creatrand(int result[]){ int i,j,n; int start[52]={0,1,2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,原创 2013-06-18 13:05:14 · 1163 阅读 · 0 评论 -
模式匹配的几种算法(含KMP算法)
#include#include#includeint failure[100];//失配函数int strmatch_bf(char *s,char *t){ //简单模式匹配,基本思想:将s和t进行比较,如果相等继续比较,否则t从头开始,s从i-j+1开始 int i,j; i=j=0; while((i < int(strlen(s))) && (j < int(strle原创 2013-07-15 16:20:24 · 999 阅读 · 0 评论 -
多项式相乘与相加演示
#include#includetypedef struct node{ int p; int e; struct node *next;}Polynomial,*P_Polynomial;P_Polynomial Input(){//输入多项式 P_Polynomial p1,p2,head; head=p2=(P_Polynomial)malloc(sizeof(原创 2013-07-15 14:22:57 · 1044 阅读 · 0 评论 -
poj3295-Tautology
/*大致题意:输入由p、q、r、s、t、K、A、N、C、E共10个字母组成的逻辑表达式,其中p、q、r、s、t的值为1(true)或0(false),即逻辑变量;K、A、N、C、E为逻辑运算符,K --> and: x && yA --> or: x || yN --> not : !xC --> implies : (!x)||yE --> equals原创 2013-07-22 22:59:40 · 689 阅读 · 0 评论 -
选择排序
#includeusing namespace std;void Select_Sort(int array[], int len){//算法思想:每次从待排序的序列中选举最大(最小)的一个数放在第一个位置 for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { int tmp; if原创 2015-03-07 19:11:07 · 409 阅读 · 0 评论 -
栈实现两个大数相加
#include#include#define MAX 100typedef struct { char data[MAX]; int top;}SeqStack,*PSeqStack;//创建一个空栈PSeqStack Init_Seqstack(){ PSeqStack S; S=(PSeqStack )malloc(sizeof(SeqStack)); if(S )原创 2013-04-19 19:10:52 · 1258 阅读 · 0 评论 -
二叉树的非递归实现
#include#include#include//栈的存储结构typedef struct bnode{ char data; struct bnode *left,*right;}Bnode,*BTree;typedef struct node{ BTree data; struct node *next;}StackNode,*PStackNode;typed原创 2013-04-26 11:17:29 · 658 阅读 · 0 评论 -
队列实现杨辉三角打印
利用循环顺序队列打印杨辉三角。杨辉三角的特点是两个腰上的数字都为1,其它位置上的数字是其上一行中与之相邻的两个整数之和。所以在打印过程中,第i行上的元素要由第i-1行中的元素来生成。在循环队列中依次存放第i-1行上的元素,然后逐个出队并打印,同时生成第i行元素并入队列。代码如下:(已通过VC++调试通过)#include#include#define MAXSIZE 100typed原创 2013-03-29 10:03:57 · 2013 阅读 · 0 评论 -
二叉树的遍历递归实现
实现代码:(已通过VC++调试通过)#include#includetypedef struct bnode{ char data; struct bnode *lchild,*rchild;}Bnode,*BTree;BTree CreatTree(){//按先序创建二叉树 char ch; BTree T; ch=getchar();//输入节点 if(ch=='#原创 2013-03-31 20:50:50 · 686 阅读 · 0 评论 -
迷宫问题的非递归解
问题描述:求迷宫中从一个入口到出口的所有路径是一个经典的程序设计问题。由于计算机解迷宫时,通常用的是“穷举求解”的方法,即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路返回,换一个方向再继续探索,直到所有可能的通路都探索到为止;假如所有可能的通路都探索到而未能到达出口,则所假定的迷宫没有解#include#include#define MAX 100typedef str原创 2013-03-24 15:45:12 · 1874 阅读 · 0 评论 -
迷宫问题递归解
#include#include#define m 6#define n 8typedef struct { int x,y;}items;//定义方向变量 int path(int maze[][n+2],items move[],int x,int y,int step){ int i; step++; maze[x][y]=step; if(m==x&&n==原创 2013-03-24 16:22:23 · 744 阅读 · 0 评论 -
中缀表达式直接求值
基本思想:设两个栈,一个保存操作数,一个保存操作符,其他操作优先级和细节问题与后缀表达式基本相同程序代码: #include#include#define MAX 100typedef struct {//创建操作数栈 int data[MAX]; int top;}SeqStack,*PSeqStack;ty原创 2013-03-24 10:42:25 · 1125 阅读 · 1 评论 -
栈实现中缀表达式转为后缀表达式
#include#include#include"zhong.h"typedef struct { char data[100]; int top;}SeqStack,*PSeqStack;//栈的基本操作PSeqStack Init_seqstack(){ PSeqStack S; S=(PSeqStack )malloc(sizeof(SeqStack)); if(S原创 2013-03-22 20:21:21 · 892 阅读 · 0 评论 -
KMP算法详解
KMP字符串模式匹配详解来自CSDN A_B_C_ABC 网友KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一. 简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int po原创 2013-03-27 15:20:21 · 637 阅读 · 0 评论 -
三元组实现矩阵转换1-(跳着找,顺着存)
代码:#include#includetypedef struct { int i,j; int v;//值}triple;typedef struct{ triple data[100]; int m,n,t;//行数,列数,元素数}tripletable;tripletable transmatrix(tripletable a){ tripletable b;原创 2013-04-10 20:14:05 · 1522 阅读 · 0 评论 -
三元祖实现矩阵转换2-(跳着找,顺着存)
代码:#include#includetypedef struct { int i,j; int v;//值}triple;typedef struct{ triple data[100]; int m,n,t;//行数,列数,元素数}tripletable;tripletable transmatrix(tripletable a){ tripletable b;原创 2013-04-10 20:51:39 · 988 阅读 · 0 评论 -
杭电1010-搜索&&迷宫问题
迷宫问题,注意剪枝!!!AC代码:#include#includeint n,m,t,flag;int startx,starty,endx,endy,starttime,wallnum;int movex[]={0,-1,0,1},movey[]={-1,0,1,0};//char maze[10][10];int abs(int a,int b){ int c; c=原创 2013-04-22 17:06:32 · 802 阅读 · 0 评论 -
插入排序
#includeusing namespace std; void Insert_Sort(int array[], int len){//在未排序的数中选举一个数插入已经排好序的数组中 for (int i = 1; i < len; i++) { int k = i; int tmp = array[k]; for (int j = i - 1; j >= 0; j--原创 2015-03-07 19:56:28 · 490 阅读 · 0 评论