![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++知识
cmhonker
关注互联网,关注cplusplus
展开
-
队列打印杨辉三角
void Yhui(Queue &H,int n) { int a,b,s,k,i; cout<<"1"<<endl; for(k=1;k<=n-1;k++) { InsertQueue(H,1);//进队元素"1" cout<<1<<" "; for(i=1;i<k;i++) { a=OutQueue原创 2012-08-20 09:10:37 · 143 阅读 · 0 评论 -
集合(数据结构)
集合实现,集合链式,集合顺序,集合链式存储,集合顺序存储,集合实现代码,集合数据结构实现,集合c/c++实现 1.集合的顺序存储结构 001 struct Set 002 { 003 ElemType *set; 004 in原创 2012-09-07 23:09:07 · 112 阅读 · 0 评论 -
白话经典算法系列之七 堆与堆排序
目录(?)[-] 二叉堆的定义堆的存储堆的操作——插入删除 堆的插入堆的删除 堆化数组堆排序 堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。 二叉堆的定义 二叉堆是完全二叉树或者是近似完全二叉树。 二叉堆满足二个特性: 1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键转载 2012-09-27 17:30:24 · 229 阅读 · 0 评论 -
白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。 1. 初始时,数组全为无序区为a[0..n-1]。令i=0 2. 在无序区a[i…n-1]中选取一个最小的元素,将其与a[i]交换。交换之后a[0…i]就转载 2012-09-27 17:27:17 · 141 阅读 · 0 评论 -
白话经典算法系列之五 归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 [cpp] view plaincopyprint?转载 2012-09-27 17:28:32 · 69 阅读 · 0 评论 -
白话经典算法系列之六 快速排序 快速搞定
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。 总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序原创 2012-09-27 17:29:26 · 57 阅读 · 0 评论 -
白话经典算法之七大排序总结篇
在我的博客对冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法进行了详细的讲解,并做成了电子书以供大家下载。下载地址为:http://download.csdn.net/detail/morewindows/4443208。 有网友提议到这本《MoreWindows白话经典算法之七大排序》电子书讲解细致用来平时学习是非常好的,但是页数有22页,不太合适转载 2012-09-27 17:31:11 · 205 阅读 · 0 评论 -
探讨i++和++i
最近笔者在调试代码时发现自己在对++运算符的理解上不够深入,导致一个不应有的bug的出现。 在代码书中或课堂上我们都知道++i和i++在作为一个单独语句使用时没有区别,即相当于i=i+1; 而作为语句的一部分时,如a=++i; 和a=i++; ++i先执行加1操作,再执行赋值操作(因++在前),而i++是先执行赋值操作,再执行加1操作(因++在后)。但这种论述未将其中更深的运行机制讲出来,尤其是转载 2012-09-28 22:55:49 · 78 阅读 · 0 评论 -
栈
栈实现,栈链式,栈顺序,栈链式存储,栈顺序存储,栈实现代码,栈数据结构实现,栈c/c++实现,其实大家可以直接调用stl栈! 抽象数据类型: void InitStack(SNode *&HS) { HS=NULL; } void Push(SNode *&HS,ElemType item) { SNode *newpt=new SNode; newpt->data=item; newpt原创 2012-09-15 10:49:17 · 156 阅读 · 0 评论 -
线性表(链式存储)
顺序表包括两种存储方式:1.顺序存储,随机读取(顺序表).2.随机存储,顺序读取(链式表) //单链表的实现 #include #include using namespace std; typedef int ElemType; struct List { ElemType data; List *next; }; void InitList(List *&HL)//初始原创 2012-09-05 20:58:00 · 81 阅读 · 0 评论 -
线性表(顺序存储)
顺序表包括两种存储方式:1.顺序存储,随机读取(顺序表).2.随机存储,顺序读取(链式表)//顺序存储线性表 #include #include using namespace std; typedef int ElemType; struct List { ElemType *list; int size; int MaxSize; }; void InitList(List &L)/原创 2012-09-05 15:53:15 · 81 阅读 · 0 评论 -
最大公约数 C/C++
最大公约数的几种求法: 1.方法一利用循环求出最大公约数 #include using namespace std; int main() { int a,b,i,d,record; cin>>a>>b; d=a>b?b:a; for(i=1;i<=d;i++) { if(a%i==0&&b%i==0) record=i; } cout<<record<<endl;原创 2012-09-04 14:09:01 · 337 阅读 · 0 评论 -
c++学生信息管理系统
#if !defined ADMIN_H #define ADMIN_H #include "Person.h" class Admin : public Person { public: Admin(); virtual ~Admin(); void inputmessage(); //Admin功能模块 void changemessage(); void delmessage();原创 2012-08-20 09:13:17 · 885 阅读 · 0 评论 -
cout结合性问题
//cout是右结合的...... #include using namespace std; int main() { //int n=1; int a=1; //cout cout return 0; } result: 1 0 1 3 1 0012FF30 0012FF30 1原创 2012-08-20 08:56:48 · 82 阅读 · 0 评论 -
二维指针(动态)
#include #include using namespace std; int main() { char name[20]; //还是必须用数组接名字的 char **p; char *ps; int num; cout<<"你们班有几个人:"; cin>>num; p=new char *[num]; for(int i=0;i<num;i++) { cin>>n原创 2012-08-20 09:16:21 · 63 阅读 · 0 评论 -
getline()忽略换行符
用cin.clear()或cin.ignore()跳过最开始的终止符例如:int main() { string strline; cin>>strline; cout<<strline<<endl; cin.ignore(1);//忽略一个字符 getline(cin,strline); cout<<strli原创 2012-08-20 09:02:34 · 174 阅读 · 0 评论 -
多项式求值
多项式求值eg:a+bx^1+cx^2+dx^3+.....nx^n //(线性表抽象数据类型为List,顺序表) double Polynomial(List &p,double x) { double sum=p.list[0]; double w=1; for(int i=1;i<p.size;i++) { w*=x; sum+=p.list[i]*w; } return sum;原创 2012-08-20 09:06:36 · 113 阅读 · 0 评论 -
sort和qsort区别
这是最好的时代,这是最坏的时代。 ——狄更斯 当在pascal里埋头苦干的前辈们还在为快排和堆排哪个效率更高争吵不休时,我们拥有了qsort。 当我还在为qsort里最后一个参数愁眉苦脸时,STL的工程师们发明了sort。转载 2012-09-01 14:24:26 · 94 阅读 · 0 评论 -
string类
string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 ;原创 2012-09-02 23:42:01 · 72 阅读 · 0 评论 -
简单汇编指令
(1)加法指令:ADD、ADC、INC、XADD除了INC不影响CF标志位外,都影响条件标志位。 CF、ZF、SF、OF CF最高位是否有进位 DF若两个操作数符号相同而结果符号与之相反OF=1,否则OF=0. 减法指令:SUB、SBB、DEC、NEG、CMP、CMPXCHG、CMPXCHG8B 前六种除了DEC不影响CF标志外都影响标志位。CMPXHG8B只影响ZF。 CF说明无符号转载 2012-08-25 00:06:33 · 79 阅读 · 0 评论 -
数组做参数退化成指针
数组做参数时将退化成指针,大家看程序: #include “iostream” #include “cstring” using namespace std; int back(int b[ ]) { b++; //数组做参数时退化成指针 cout<<*b<<endl; cout<<”b的字节数:”<<sizeof(b)<<endl; } int main() { int转载 2012-08-20 08:50:09 · 838 阅读 · 0 评论