数据结构与算法(c语言版本)
数据结构与算法c
SkyInTheLimit
小辣鸡一枚,大佬勿喷
展开
-
c语言:计算二叉树的深度递归、非递归算法
//递归int search_btDepthRecursion(LINKBINTREE *bTree){// 返回最大深度,递归算法 if(!bTree) return 0; return (search_btDepthRecursion(bTree->lchild)>search_btDepthRecursion(bTree->rchild)?search_btDepthRecursion(bTree->lchild):search_btDepthRecursion原创 2021-01-08 17:25:01 · 1131 阅读 · 0 评论 -
c语言:线索二叉树的创建、遍历
#include <stdio.h>#include <stdlib.h>#define DATATYPE char#define MAXSIZE 100typedef struct node{ DATATYPE data; int ltag,rtag; struct node *lchild,*rchild;}THREADBT;THREADBT *init_threadBt(){// 创立二叉树 DATATYPE data[] = "abcdef#";原创 2021-01-08 00:26:45 · 318 阅读 · 0 评论 -
c语言:完全二叉树的非递归先、中、后序、层次遍历
#include <stdio.h>#include <stdlib.h>#define DATATYPE char#define MAXSIZE 100typedef struct node{ DATATYPE data; struct node *lchild,*rchild;}LINKBINTREE;LINKBINTREE *create(){ int num,father,j = 0; LINKBINTREE *pArr[MAXSIZE],*p; c原创 2021-01-06 17:12:33 · 176 阅读 · 0 评论 -
c语言:完全二叉树的建立与递归遍历
#include <stdio.h>#include <stdlib.h>#define DATATYPE char#define MAXSIZE 100typedef struct node{ DATATYPE data; struct node *lchild,*rchild;}LINKBINTREE;LINKBINTREE *create(){ int num,father,j = 0; LINKBINTREE *pArr[MAXSIZE],*p; c原创 2021-01-06 17:09:07 · 523 阅读 · 0 评论 -
c语言:队列的链式存储结构
# include <stdio.h># include <stdlib.h># define DATATYPE int typedef struct node{ DATATYPE data; struct node *next;}linkqueue;typedef struct{ linkqueue *front,*rear; int len; }LINKQUEUE;void init_linkqueue(LINKQUEUE *Lq){ linkqu原创 2020-12-22 09:46:35 · 178 阅读 · 0 评论 -
c语言:队列的顺序存储实现
# include <stdio.h># include <stdlib.h># define MAXSIZE 11# define DATATYPE int typedef struct{ DATATYPE data[MAXSIZE]; int rear,front;}QUEUE;void init_queue(QUEUE *q){ q->front = q->rear = 0;}int isEmpty(QUEUE *q){ int n;原创 2020-12-21 17:53:24 · 159 阅读 · 0 评论 -
c语言:利用栈特性实现判断字符串是否中心对称
# include <stdio.h># include <stdlib.h># define MAXSIZE 10# define DATATYPE inttypedef struct node{ DATATYPE data[MAXSIZE]; int top;}SEQSTACK;void init_stack(SEQSTACK *S){ S->top = -1;}void stack_push(SEQSTACK *S,DATATYPE n){原创 2020-12-20 23:17:48 · 2968 阅读 · 1 评论 -
c语言:栈的链式存储结构
# include <stdio.h># include <stdlib.h>typedef struct node{ int data; struct node *next;}stackNode;typedef struct{ stackNode *stackTop;}LINKSTACK;//采用两个结构体可以避免使用**的场景,并且后期方便管理void init_linkStack(LINKSTACK *linkstack){ linkstack-&g原创 2020-12-20 18:32:29 · 115 阅读 · 0 评论 -
栈的顺序存储
# include <stdio.h># include <stdlib.h># define MAXSIZE 10typedef struct node{ int data[MAXSIZE]; int top;}SEQSTACK;void init_stack(SEQSTACK *S){ S->top = -1;}void stack_push(SEQSTACK *S,int n){ if(S->top==MAXSIZE-1){ pri原创 2020-12-20 15:29:28 · 184 阅读 · 1 评论 -
c语言循环链表实现约瑟夫环
#include <stdio.h>#include <stdlib.h> typedef struct node{ int data; struct node *next;}LINKLIST;LINKLIST *initList(int n){// 创建一个循环链表 ,赋予的值分别为1,2,3,4.... LINKLIST *head = (LINKLIST*)malloc(sizeof(LINKLIST)); LINKLIST *p = head; he原创 2020-12-19 18:14:46 · 388 阅读 · 1 评论 -
c语言链表实现稀疏多项式之间的加减(顺序结构链表)
#include <stdio.h>#include <stdlib.h> // 顺序多项式的合并typedef struct node{ int coef;//系数 int pow;//指数 struct node *next;}POLYNOMIAL;POLYNOMIAL *polyRcreate(){// 尾插入法创建链表 int coef,pow,num = 1; POLYNOMIAL *head,*last,*p; head = (POLYN原创 2020-12-04 23:39:15 · 1447 阅读 · 1 评论 -
c语言单链表的实现,包括链表的创建、插入、查询、删除、打印、长度计算
#include <stdio.h>#include <stdlib.h> typedef struct node{ char data; struct node *next;}LINKLIST;// 链表初始化操作,返回一个空链表 LINKLIST *INITLIST(){ LINKLIST *head; head = (LINKLIST*)malloc(sizeof(LINKLIST)); head->next = NULL; return h原创 2020-11-25 00:46:47 · 623 阅读 · 0 评论