数据结构与算法
7yang7
这个作者很懒,什么都没留下…
展开
-
数组的增删改查的C语言实现
#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <stdbool.h>typedef struct Arr{int len;int num;int *head;}A;void initArr(A *arr,int len){ arr->head=(int *)malloc(sizeof(原创 2015-09-26 16:58:46 · 8700 阅读 · 0 评论 -
斐波那契数列(递归与循环的区别)
递归:#include<stdio.h>long long f(unsigned int n){ int t[2]={0,1}; return n<2?t[n]:f(n-1)+f(n-2);}void main(){ printf("%I64d",f(100));}循环:#include<stdio.h>long long f(unsigned原创 2015-09-29 09:00:18 · 713 阅读 · 0 评论 -
单向链表的倒序输出(栈实现和递归实现)
**栈实现**#include<stdio.h>#include<malloc.h>typedef struct node{int val;struct node * next;}NODE,*PNODE;typedef struct stack{ PNODE head; PNODE bottom;}STACK,*PSTACK;void init(PSTA原创 2015-09-27 22:38:52 · 1839 阅读 · 0 评论 -
快速排序算法
快速排序的原理: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j–),找到第一个小于key的值A[j],将A[j]和A[i]互换; 4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换; 5)重复第3、4步原创 2015-09-28 19:18:38 · 369 阅读 · 0 评论 -
字符串空格替换
原理图 #include<stdio.h>#include<stdbool.h>void replace(char string[]){ if(string==NULL){ return; } int length=0; int numberOfBlank=0; int i=0; wh原创 2015-09-27 16:31:42 · 369 阅读 · 0 评论 -
二维数组快速查值
#include<stdio.h>#include<stdbool.h>bool find(int* m,int rows,int columns,int val){ if(m!=NULL&&rows>0&&columns>0){ int row=0; int column=columns-1; w原创 2015-09-27 15:28:04 · 616 阅读 · 0 评论 -
队列的C语言实现
# include <stdio.h># include <malloc.h># include <stdbool.h>typedef struct queue{ int *start; int first; int last;}Q,*QUEUE;void init(QUEUE q){ //the length of queue is原创 2015-09-27 13:04:58 · 506 阅读 · 0 评论 -
两个栈实现队列的功能
原理图 #include<stdio.h>#include<stdbool.h>#include<malloc.h>#include<stdlib.h>typedef struct node{ int val; struct node *next;}NODE,*PNODE;typedef struct stack{ PNODE top;原创 2015-09-28 18:23:24 · 374 阅读 · 0 评论 -
二叉树的还原(先序+中序)
图解分析 #include<stdio.h>#include<stdlib.h>#include<malloc.h>typedef struct treeNode{ int val; struct treeNode *left; struct treeNode *right;}NODE,*PNODE;PNODE createTreeNode(int原创 2015-09-28 13:23:37 · 517 阅读 · 0 评论 -
栈的C语言实现
#include<stdio.h>#include<stdbool.h>#include<malloc.h>typedef struct Node{ int val; struct Node *pNext;}NODE,*PNODE;typedef struct stack{ PNODE pTop; PNODE pBottom;}STA原创 2015-09-27 11:52:06 · 447 阅读 · 0 评论 -
找出两个字符串中最大的公共子串(java实现)
import java.util.HashSet; import java.util.Set; public class Test { public static void main(String[] args) { String s=”jdfisdo27548ghdgyang”; String s2=”jfiyang27543gdso”;原创 2015-10-20 21:12:20 · 1912 阅读 · 0 评论