数据结构和算法
geektiaotiao
未知执剑人
展开
-
矩阵相乘
两个矩阵相乘,其实很简单,但真正写起来,需要你理解其中的细节,公式会被,但程序不一定会写。以此,送给基础薄弱,眼高手低的我们。#include "stdio.h"int main(){int i,j,k;int matrixC[5][6]={0};int matrixA[5][4]={1,5,7,3,3,6,3,9,1,2,8,7,0,3,1,9,3,2,5,4,};原创 2013-10-26 20:36:09 · 823 阅读 · 0 评论 -
快速排序
快速排序法是一种经常提及,被很多公司喜欢用来考察的排序方法,它的平均时间复杂度为O(nlongn),最差时间复杂度为O(n*n)。/* Note:Your choice is C IDE */#include "stdio.h"void quick_sort(int a[],int n);//函数的声明后要加分号int main(){int i;int a[10];print原创 2013-10-26 20:44:27 · 743 阅读 · 0 评论 -
归并排序
归并排序:即将一个无序序列分为长度大致相同的2部分,然后对这两部分逐个元素比较,将较小的元素放入相应位置#include "stdio.h"void merge(int a[], int first, int mid, int end, int temp[]){ int i,j,k,m,n; i = first; j = mid + 1; m = mid; n =原创 2013-10-26 19:25:35 · 591 阅读 · 0 评论 -
二叉树用数组表示
/*复杂的编程,思考永远是最重要的*/#include "stdio.h"#include "stdlib.h"#include "math.h"int b_tree[20]={0};//int count=0;//因为count不能由开始输入的数据个数直接看出来 ,故我直接用全局 变量方便随时使用 //这段程序我借鉴了链表建立二叉树的方法,值得仔细推敲 void creat_原创 2013-10-26 19:26:55 · 2718 阅读 · 0 评论 -
队列
使用数组模拟队列:/*==========用数组模拟队列===============*//*起初数组元素全部为0 我们给它入队但数据都为非 0 出队元素确定后 该出队元素设置为 0*/#include "stdio.h"#include "stdlib.h"#include "conio.h"#define maxsize 10int queue[maxsize];int原创 2013-10-26 19:31:03 · 701 阅读 · 0 评论 -
二叉树的遍历:前序、中序、后序
#include#includetypedef struct Bintree{int data;struct Bintree *lchild;struct Bintree *rchild;}treenode,*b_tree;b_tree root=NULL;/* 函数的声明*/b_tree creat_tree(int n);void print1();void preor原创 2013-10-26 19:28:48 · 835 阅读 · 0 评论 -
链表反转
#include "stdio.h"#define LEN sizeof(Student)typedef struct student{ int num; float score; struct student *next; }Student,*link;//构造链表的函数 link creat(int n);//打印链表的内容 void print_link(l原创 2013-10-26 19:32:22 · 820 阅读 · 0 评论 -
图论中的BFS和DFS
其时两种算法还真的不好懂,BFS强调先选择一条路径走完,然后再回到原来的备选路径走,直至结束;DFS强调把所有邻接点遍历完;前者使用堆栈模拟,后者可以用队列模拟。BFS:/* Note:Your choice is C IDE */#include#include#define Max 9#define queueMAX 10typedef struct Bintree{原创 2013-10-26 20:40:50 · 1101 阅读 · 0 评论