数据结构
向来缘浅奈何晴深
人生为棋,我愿为卒,行动虽慢,可谁曾见我后退一步
展开
-
约瑟夫问题
//n个人围圈报数,报m出列,最后剩下的是几号#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node *next;}node;node *create(int n){ node *p=NULL,*head,*s; int i=1; head=(no原创 2015-09-27 22:53:21 · 600 阅读 · 0 评论 -
线索二叉树
//线索二叉树#include<stdio.h>#include<stdlib.h>//定义类型typedef char ElemType;//枚举类型,定义线索存储标志位//Link(0):表示指向左右孩子的指针//Thread(1):表示指向前驱后继的线索typedef enum {Link,Thread}PointerTag;//定义结点typedef struct BiThrN原创 2015-11-22 16:31:35 · 592 阅读 · 1 评论 -
循环链表的初始化、插入、删除、返回结点位置、遍历
#include <stdio.h>#include <stdlib.h>//链表存储结构的定义typedef struct CLinkList{ int data; struct CLinkList *next; }node;//初始化循环链表void ds_init(node **pNode){ int item; node *temp; no原创 2015-09-23 21:26:26 · 1891 阅读 · 0 评论 -
栈-二进制转换为十进制
#include <stdio.h>#include <stdlib.h>//malloc和realloc#include <math.h>//平方的计算#define STACK_INIT_SIZE 20//初始化栈的空间#define STACKINCREMENT 10//扩展空间typedef char ElemType;//建立一个栈typedef struct{ Ele原创 2015-10-11 15:15:21 · 720 阅读 · 0 评论 -
递归和迭代
////迭代//#include<stdio.h>////int main()//{// int i;// int a[40];//// a[0]=0;// a[1]=1;// printf("第1个月:%d \n",a[1]);//// for(i=2;i<40;i++)// {// a[i]=a[i-1]+a[i-2];// printf("第%d原创 2015-11-11 10:04:50 · 404 阅读 · 0 评论 -
八皇后问题
#include<stdio.h>int count=0;int NotDanger(int row,int j,int(*chess)[8]){ int i,k,flag1=0,flag2=0,flag3=0,flag4=0,flag5=0; //判断列方向 for(i=0;i<8;i++) { if(*(*(chess+i)+j)!=0)原创 2015-11-11 10:00:21 · 537 阅读 · 0 评论 -
汉诺塔
#include<stdio.h>//将n个盘子从x借助y移动到z上void move(int n,char x,char y,char z){ if(1==n) { printf("%c-->%c\n",x,z); } else { move(n-1,x,z,y);//将n-1个盘子从x借助z移动到y上 p原创 2015-11-11 09:54:55 · 525 阅读 · 0 评论 -
求a中最大值的递归函数
#include<stdio.h>#define maxsize 20int max(int *a,int n,int i){ if(i<n-1) { if(a[i]>a[i+1]) { a[i+1]=a[i]; } i++; return max(a,n,i); }原创 2015-11-04 19:01:06 · 651 阅读 · 0 评论 -
逆波兰计算器
#include<stdio.h>#include<ctype.h>#include<stdlib.h>#define STACK_INIT_SIZE 20//初始化栈的空间#define STACKINCREMENT 10//扩展空间#define MAXBUFFER 10//最大缓冲区typedef double ElemType;//建立一个栈typedef struct{原创 2015-10-18 11:13:44 · 611 阅读 · 0 评论 -
魔术师发牌问题
#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; struct node *next;}sqlist,*linklist;//生成一个单循环链表linklist CreateLinkList(){ linklist head=NULL; linklist s,r; i原创 2015-09-28 16:37:11 · 738 阅读 · 0 评论 -
二叉树的建立和遍历
//建立二叉树并输出每个字符所在的层数#include<stdio.h>#include<stdlib.h>typedef char ElemType;typedef struct BiTNode{ char data; struct BiTNode *lchild,*rchild;} BiTNode,*BiTree;//创建一棵二叉树,约定用户遵照前序遍历的方式输入数据vo原创 2015-11-18 19:53:31 · 403 阅读 · 0 评论