数据结构与算法
deerleaper
这个作者很懒,什么都没留下…
展开
-
判断数组是否升序
//2.试写一模板函数,测试数组a中的元素是否按照升序排列,即a[i]//如果不是,函数返回false,否则返回true。templatebool IsAscendingArray(T* a, int n){ if (n == 1) { return true; } return IsAscendingArray(a, n-1) && (a[n-1] >= a[n-2]);原创 2014-03-17 23:15:55 · 5699 阅读 · 0 评论 -
二叉树递归遍历和非递归遍历
// vs_demo.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include typedef struct st_BiTreeNode { char data; st_BiTreeNode* lchild; st_BiTreeNode* r原创 2014-07-10 13:57:03 · 443 阅读 · 0 评论 -
堆排序
#pragma oncevoid print_array(int arr[], int n){ for (int i = 0; i <n; ++i){ printf("%d ", arr[i]); } printf("\n");}void swap_elem(int &a, int &b){ int temp = a; a = b; b = temp;}//#de原创 2014-08-01 12:33:27 · 378 阅读 · 0 评论 -
删除数组中指定的元素
int remove_key(int* arr, int n, int v) { int count = 0; //the number of elements equal to v which is to be deleted for(int i = 0; i < n-count; ++i){ int x = arr[i]; if(x == v){ int j原创 2014-08-01 09:28:22 · 1205 阅读 · 0 评论 -
八大排序算法
转自:http://blog.csdn.net/hguisu/article/details/7776068概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(n转载 2014-07-31 15:21:12 · 347 阅读 · 0 评论 -
约瑟夫问题
#define LL_DataType inttypedef struct st_LinkListNode { LL_DataType data; struct st_LinkListNode* next;}LinkListNode,* LinkList;LinkList CreateSingleCircleList(int n){ LinkListNode* l = new Link原创 2014-08-10 17:30:48 · 425 阅读 · 0 评论 -
《数据结构习题与解析》第一章 绪论
1、数据:对客户事物符号的表示,zhi原创 2014-06-16 22:15:47 · 1319 阅读 · 0 评论 -
将整型转为16进制字符串
void conv_int_to_string(int x, char buffer[]){ char c[20]={0}; char t[20]="00000000"; itoa(x,c,16); int len = strlen(t)-strlen(c); strcpy(t+len, c); strcpy(buffer, t);}原创 2014-08-12 08:34:58 · 1751 阅读 · 0 评论 -
二叉树和其他树
8.编写公式化描述的二叉树的前序遍历程序。假设二叉树的元素存储在数组a中,其中Last用于保存树中最后一个元素的位置。当位置i中没有元素时,a[i] = 0。给出该程序的时间复杂性。原创 2014-08-12 04:47:48 · 459 阅读 · 0 评论 -
图-邻接矩阵
#pragma once#include #include #include #include #include using namespace std;#define INFINITY 1000#define MAXSIZE 100typedef char InfoPtr;typedef int VRType;typedef enum {DG,DN,UG,UN原创 2014-08-18 23:52:32 · 542 阅读 · 0 评论 -
程序员编程艺术第一~十章集锦与总结(教你如何编程)--持续更新中
程序员编程艺术第一~四十章集锦与总结--面试、算法、编程 作者:July、编程艺术室。出处:http://blog.csdn.net/v_JULY_v 。 围绕“面试”、“算法”、“编程”三个主题的程序员编程艺术系列(简称TAOPP系列)从今年4月写第一篇起,至今快有2个月。2个月的创作中,写了十章,共计13篇文章。这是本人的第4大原创作品,不过与之前微软面试100题系列转载 2014-07-11 08:12:20 · 420 阅读 · 0 评论 -
快速排序
#pragma oncevoid print_array(int arr[], int n){ for (int i = 0; i <n; ++i){ printf("%d ", arr[i]); }}//quick sort, N*logNint adjust_arr(int arr[], int beg, int end){ int i = beg, j = end;原创 2014-07-29 12:33:57 · 321 阅读 · 0 评论 -
检查输入数为非负
//1.试写一个模板函数Input,要求用户输入一个非负数,验证输入的数是否大于或等于0,//如果不是,告诉用户输入非法,需要重新输入一个数,可尝试3次,函数把当前输入的数作为引用参数返回,//成功返回true,失败返回falsetemplatebool Input(T& target){ std::cout<<"input a number above 0 :"<<st原创 2014-03-17 23:00:16 · 609 阅读 · 0 评论 -
代码面试最常用的10大算法
摘要:面试也是一门学问,在面试之前做好充分的准备则是成功的必须条件,而程序员在代码面试时,常会遇到编写算法的相关问题,比如排序、二叉树遍历等等。在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。转载 2014-05-02 21:28:08 · 481 阅读 · 0 评论 -
使用abs求二个数中的最大值和最小值
#includeint GetMaxMin(int num1, int num2, int & max, int & min){ int max=(int)(fabs(num1-num2)+num1+num2)/2; int min=(int)fabs((fabs(num1-num2)-num1-num2)/2); return 0;}原创 2014-05-11 10:50:15 · 398 阅读 · 0 评论 -
计算子字符串出现的次数
int CountSubStr(const char* src, const char* cmp){ int count = 0; if (!src || ! cmp) { return count; } int src_len = strlen(src); int cmp_len = strlen(cmp); char *s = const_cast(&src[0])原创 2014-05-11 10:31:39 · 510 阅读 · 0 评论 -
排序算法一
void swap(int & a, int & b){ int temp = a; a = b; b = temp;}//insert sortingvoid insert_sort(int a[], int n){ for (int i = 1; i < n; ++i) { int cur = a[i]; int j = 0; for (; j < i; +原创 2014-04-29 00:12:10 · 387 阅读 · 0 评论 -
逆转单链表
typedef struct st_Linklist{ int data; st_Linklist* next;}Linklist;Linklist* ReverseLinkList(Linklist* head){ if (!head || ! head->next) { return head; } Linklist* pre = head; Linklist*原创 2014-04-28 21:18:03 · 534 阅读 · 0 评论 -
堆排序
#define MAX_NODE_NUM 50typedef int KeyType;typedef int NodeInfo;typedef struct st_node { KeyType key; NodeInfo data;}Node, SqList;//typedef Node SqList[MAX_NODE_NUM];转载 2011-12-20 20:12:41 · 314 阅读 · 0 评论 -
微软面试100题2010年版全部答案集锦(含下载地址)
转子 微软等数据结构+算法面试100题全部答案集锦作者:July、阿财。时间:二零一一年十月十三日。引言 无私分享造就开源的辉煌。 今是二零一一年十月十三日,明日14日即是本人刚好开博一周年。在一周年之际,特此分享出微软面试全部100题答案的完整版,以作为对本博客所有读者的回馈。转载 2014-07-07 20:56:27 · 1591 阅读 · 0 评论 -
归并排序
void merge_array2(int a[], int m, int b[], int n, int c[]){ int i = 0, j =0, k = 0; while(i < m && j < n){ if(a[i] <= b[j]){ c[k++] = a[i]; ++i; }else{ c[k++] = b[j]; j++; } } w原创 2014-07-29 13:56:13 · 426 阅读 · 0 评论 -
8大排序算法图文讲解
文章转自:http://www.cricode.com/3212.html (好文章,我分享)排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。转载 2015-02-27 14:15:18 · 437 阅读 · 0 评论