实现一个string 类 /************************************************************************* > File Name: my_String.cpp > Author: 刘怪怪 > Mail: > Created Time: 2017年12月18日 星期一 09时51分40秒 ************************************************************************/ #include<iostream> #include<string.h> using namespace std; class my_String { public: int size1; //字符个数 char *ptr; //指向这个字符串 friend istream& operator>>(istream& os,my_String& str); 继续阅读 >>


刘嘉辉 18/01/09 14:49:53
2017数据结构课设 关于课设,格式上就不像课设报告写得那么详实了.这里就重点回想一下,自己在课设中遇到的问题以及一些感想了. 题目 : 这是一个关于图及图相关算法的程序,我给他起得名字叫<德高地图>. 简介: 实现最短路径(dijkstra),两点间最少转折数(BFS),两点间所有路径(DFS). 技术点: 使用数据库(没能实现数据库类的封装),vector容器做邻接矩阵,系统调用显示图片,其他都是常规操作. 需要温习的知识: MYSQL * conn; 数据库连接指针设全局 不能使用了就关 下次调用 再关 就会产生double free的情况 memory map 报告 关于查找 如查不到 不会返回空集 返回表头 此时应该使用 返回行数来判断 == 0 为查不到的 关于语句调用 create table 表名字 ( from int , name varchar(20)); select * from 表名字 where from = %s and name = %s ; 继续阅读 >>


刘嘉辉 18/01/09 14:40:25
先明确几个概念: 常对象只能调用常成员函数。 普通对象可以调用全部成员函数。 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针。 当一个成员函数被调用时,自动向它传递一个隐含的参数,该参数是一个指向这个成员函数所在的对象的指针。 在C++中,this指针被隐含地声明为: X *const this,这意味着不能给this 指针赋值; 在X类的const成员函数中,this指针的类型为:const X* const, 这说明this指针所指向的这种对象是不可修改的(即不能对这种对象的数据成员进行赋值操作); 由于this并不是一个常规变量,所以,不能取得this的地址。 如: #include <iostream> class A { public: A():mValue(0) { } void print() { std::cout<&l 继续阅读 >>


刘嘉辉 17/12/21 21:37:47
const用在成员函数后   主要是针对类的const   对象      如:      class   Text{      public:              void   printconst(void)const{cout<<"hello"<<endl;}              void   print(void){cout<<"hello"<<endl;}      private:              int   k;      继续阅读 >>


刘嘉辉 17/12/18 20:01:14
还记得__LINE__这个东西吗?debug的利器 这个assert呢,跟其效果差不多的。  assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 然后通过调用 abort 来终止程序运行。 请看下面的程序清单badptr.c: #include <stdio.h> #include <assert.h> #include <stdlib.h> int main( void ) {       继续阅读 >>


刘嘉辉 17/12/14 16:28:24
最近终于完成了,用c++实现的一个小小小东西,简简简化版的vector,用了好多类的东西,写完之后感觉之前好多不明白的东西,都有了一些新的理解。 借此机会,我想回顾一些小知识点: new 和 delete、new[] 和 delete[] 对应使用,链接。 列表初始化 有const时要注意。 运算符重载 成员函数重载 push_back(). 引用 冒号与双冒号 下边就是代码了 /************************************************************************* > File Name: change_index.cpp > Author: 刘怪怪 > Mail: > Created Time: 2017年12月11日 星期一 18时08分17秒 ************************************************************************/ #include<i 继续阅读 >>


刘嘉辉 17/12/13 12:10:33
做了简单版的用dfs来遍历整个图 /************************************************************************* > File Name: deep_search.cpp > Author: > Mail: > Created Time: 2017年12月03日 星期日 19时20分12秒 ************************************************************************ #include<iostream> using namespace std; int book[101]={0},sum=0,n=0,e[101][101]={0}; void dfs(int cur) { int i; cout << cur; sum++;//每访问一个顶点,sum 就加一 if(sum == n) r 继续阅读 >>


刘嘉辉 17/12/03 20:03:49
今天学了一下堆,用数组写的,贴出来。 /************************************************************************* > File Name: 堆.cpp > Author: 刘怪怪 > Mail: > Created Time: 2017年11月30日 星期四 22时21分19秒 ************************************************************************/ #include<iostream> using namespace std; int h[101]; //用数组来存放堆 int n; //堆的大小 void swap(int x, int y) { int t; t=h[x]; h[x] = h[y]; h[y] = t; return; } // void siftdown(in 继续阅读 >>


刘嘉辉 17/11/30 23:14:16
今天遇到一个问题就是利用队列求解二叉树的某一层的节点个数,乍一看感觉蛮简单,一上手让我有点头凉凉。 首先要解决的问题就是如何在队列中用标志来对二叉树进行分层,脑子里虽然有个大概的思路,弄几个循环,再来几个变量控制,也忒麻烦了。找了下博客也没看懂多少,高乐高还是给整出来了。思路如下。 emmmmm,我们不知道如何解决层的问题,再细分就是需要知道某一层有多少个,也就间接解决了层的问题。有点绕啊,不卖关子了,直接说了。 两个数,int curcount(来记录当前层的节点个数), int nextcount(来记录下一层的节点个数); 显然,curcount的初始值为1,因为只有一个根结点,而nextcount由于未知,故置为0. void count_tree(Tnode *root,int level)//level 传进来的层数 { int curcount=1,nextcount=0;//初始化当前节点个数,及下一行节点个数 int count=1; //根节点所在层数为1 继续阅读 >>


刘嘉辉 17/11/28 22:51:10
终于完成了初版的链表版 哈弗曼编码 效果如下   /************************************************************************* > File Name: huff.c > Author:刘嘉辉 > Mail: > Created Time: 2017年11月20日 星期一 21时11分48秒 ************************************************************************/ #include<stdio.h> #include<stdlib.h> typedef struct node { char a; int weight; struct node *left; struct node *right; }Htree; typedef struct ch{ char c; int *pp; }Node; / 继续阅读 >>


刘嘉辉 17/11/23 21:40:36