![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
sjiang
爱劳动
展开
-
向量
向量结构的C++实现/* * Vector * * Created on: 2011-5-24 * Author: sjiang2142 */ template class Vector { public: //构造函数 explicit Vector(int initSize=0):theSize(initSize),theCapacity(initSize+SPARE_CAPACITY) { objects = new Object[theC原创 2011-05-25 15:27:00 · 715 阅读 · 0 评论 -
插入排序C++实现
#include #include using namespace std; void print(int* pData, int count){ for (int i = 0; i< count; i++) { cout << pData[i] << " "; } cout << endl; } void insertSort(int *pData, int count){原创 2013-03-31 20:21:26 · 1196 阅读 · 0 评论 -
二叉树的建立与遍历
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */ /* * main.cc * Copyright (C) archermind 2012 * */ #include using namespace std; //获取数组长度 template int原创 2012-07-31 10:41:01 · 522 阅读 · 0 评论 -
快速排序
#include using namespace std; //快速排序 void quick_sort(int s[], int l, int r) { if (l < r) { //Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1 int i = l, j = r, x = s[l]; w原创 2012-08-02 14:30:58 · 624 阅读 · 0 评论 -
判断两个数大小
//两个数比较大小不用逻辑判断,两个数相减后做逻辑移位求符号位,如果符号位是0则大于等于,如果符号位为1则小于 alert((65-5555)>>>63);原创 2011-11-02 10:57:30 · 765 阅读 · 0 评论 -
不用加减乘除求两数之和
各位相加不进位,再加上进位值 function add(a,b){ if(b==0) return a; var sum = a^b; var carry = (a&b)<<1; return add(sum,carry); } alert(add(3,4));原创 2011-11-02 10:13:23 · 674 阅读 · 0 评论 -
位运算
简介 110 AND 1011 --------------- 0010 --> 2 由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。当然有人会说,这个快了有什么用,计算6 and 11没有什么实际意义啊。这一系列的文章就将告诉你,位运算到底可以干什么,有些什么经典应用,以及如何用位运算优化你的程序。 Pascal和C中的位运算符号 下面的a和转载 2011-10-30 17:06:57 · 1602 阅读 · 0 评论 -
二叉查找树
<br />树的实现文件<br />/* * BinarySearchTree.h * * Created on: 2011-5-27 * Author: sjiang2142 */ template<typename Comparable> class BinarySearchTree { public: //构造函数 BinarySearchTree() { root=NULL; } //复制构造函数 BinarySearchTr原创 2011-05-29 09:09:00 · 681 阅读 · 0 评论 -
循环队列
<br />队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 <br /> 在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。 <br /> 队列空的条件:front=rear <br /> 队列满的条件: rear = MAXSI原创 2011-05-26 22:38:00 · 691 阅读 · 0 评论 -
栈
栈,是硬件。主要作用表现为一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。 栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为先进后出表。 栈可以用来在函数调用的时候存原创 2011-05-26 17:00:00 · 524 阅读 · 0 评论 -
双向链表
<br />双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。<br />双向链表的实现:<br />/* * List.h * * Created on: 2011-5-25 * Author: sjiang2142 */ template<typename Object> class List { privat原创 2011-05-26 15:17:00 · 618 阅读 · 0 评论 -
冒泡排序C++实现
//C++实现冒泡排序 #include using namespace std; void print(int* pData, int count){ for (int i = 0; i< count; i++) { cout << pData[i] << " "; } cout << endl; } void BubbleSort(int* pData, int count)原创 2013-03-31 19:45:01 · 33662 阅读 · 5 评论