Data Struct
denyz
这个作者很懒,什么都没留下…
展开
-
递归调用实现快速排序算法
递归调用实现快速排序算法:快速排序原理:1.设中枢记录的关键字为pivotkey,则搜西安从hight所指的位置起向前搜索找到第一个关键字小与pivotkey的记录和枢轴记录相互交换然后从low所指的位置起向后搜索,找到第一个关键字大于pivotkey的记录和枢轴记录相互交换,重复这两步low=hight为止。2.其中递归调用前应该判断是否low void Qu原创 2013-12-27 14:35:09 · 997 阅读 · 0 评论 -
多项式相加运算
多项式相加运算,使用链表实现,代码仍需要改善,这里先初步做个记录//实现多项式的表示及相加 by Denis#include #include #define ture 1#define false 0typedef int ElemType;typedef struct LNode{ ElemType coef; //系数 int expn;原创 2014-11-09 23:24:11 · 938 阅读 · 0 评论 -
折半查找的实现
折半查找的实现:void HalfFind(int num[],int target){ int middle,low,hight; low=0;hight=7;//initial low and hight middle=(low+hight)/2; while(low<=hight) { middl原创 2013-12-28 10:02:08 · 831 阅读 · 0 评论 -
笨方法实现字符串中字符频度的统计
1.先建立一个字母表,包含字母的大小写2.输入需要统计频度的字符串。3.用字符串中的字符去遍历字母表,频度存放在字母表的freq变量中。如果大家有什么好方法,非常欢迎留言! #include #define Maxsize 52typedef struct{ char data; int freq;//save the frequentness}原创 2013-12-25 17:57:37 · 987 阅读 · 0 评论 -
二叉树的输入输出,遍历结果,和双亲结点的查找
/*20130701_denyz*//*二叉树的存储,输入,输出,遍历(DLR,LDR,RDL)*/ /*建立二叉树的二叉链表*/#include #include typedef struct node{ struct node *Lchild,*Rchild; char data; }Btree;原创 2013-12-18 14:49:26 · 2991 阅读 · 2 评论 -
用数组实现的插入排序法
简单实现直接插入排序(用数组):原理:依次把未排序的数据,插入到已经排好序的数据中,然后数据相应后移。 void InsetSort(int num[]){ int tmp;//tmp 存放当前需要插入的数 int i,j; for(i=1;i<8;i++)//i记录遍历到需要插入的点的位置 { tmp=num[i]; for(j=i-1;原创 2013-12-23 16:51:19 · 844 阅读 · 0 评论 -
MFC中简单实现选择排序
//20131219 Denyz int i; int num[8]; CString Output1,szInput[8],OutputTmp; int k; int Min,MinPos,j;//j为扫描的趟数 int tmp;//用作交换两个数值的暂存变量 //int num[8]={9,8,7,6,5,4,3,2}; for(i=0;i<8;i++)原创 2013-12-19 16:04:02 · 1130 阅读 · 1 评论 -
矩阵的乘法
矩阵的乘法代码比较多,但是核心的东西就这么一点A*B=C,A,B,C都是矩阵矩阵可以用三元组存储。 根据公式:C(i,j) = A(i,1)*B(1,j) + A(i,2)*B(2,j) + …… + A(i,n)*B(n,j) for(i=1;i for(j=1;j { C[i][j]=0; //C[][]保存了矩阵的乘积中第i行j列的元素原创 2013-12-17 16:01:54 · 803 阅读 · 0 评论 -
模式匹配,KMP 算法精华部分
KMP算法的基本思想:每一趟匹配完成后,利用上一趟匹配的结果,将模式向右滑动尽可能远的一段距离。 宗旨:i指针在整个匹配过程是没有回溯。当主串中的第i个字符与模式中第j个字符失配时,主串中第i个字符(i指针不回溯)应与模式中哪个个字符再比较?假设此时对应于模式中第K(k)哪个字符继续比较。则模式中前k-1个字符的子串必须满足下列关系式:(4-2) j为模式串原创 2013-12-30 14:49:56 · 871 阅读 · 0 评论 -
单链表的就地逆转
线性链表就地逆转函数,用“砍头”法。砍断头结点后,在头结点和Head指针的中间不断插入链表的结点,从而达到链表逆转的目的 链表的就地逆转://线性链表就地逆转函数,用“砍头”法//砍断头结点后,在头结点和Head指针的中间不断插入链表的结点,从而达到链表逆转的目的void Reverse(LList *Head){ LList *PL1,*PLn,*原创 2013-12-30 14:31:36 · 3524 阅读 · 0 评论 -
链表的输入输出以及就地逆转
/*20131215 Denyz 链表是输入输出及就地逆转*/ #include #include typedef struct{ int num; int name; }Elementype; typedef struct LinkList{ Elementype elem;原创 2013-12-16 11:15:33 · 876 阅读 · 1 评论