数据结构
基本是大学中数据结构书本中实现的代码
Lavender_LoveQaQ
一直很努力的小白
展开
-
《数据结构》C语言——散列(哈希)表(开放地址散列方法、链表散列方法)
开放地址方法#define Size 1001typedef struct HTNode{ int element; bool Empty;//标记之前是否存储过元素(这个位置只要使用过就置 false) }HTNode;typedef struct { int MaxSize; HTNode *ht;} MyHashSet; //开放地址散列法 MyHashSet* myHashSetCreate() { MyHashSet* Ha原创 2020-09-23 14:51:25 · 479 阅读 · 0 评论 -
《数据结构》C语言——图的深度优先遍历、广度优先遍历
注:此代码的实现需要以邻接表的实现为基础,邻接表的实现在上一篇文章已给出。(将本代码放入其中可直接运行)https://blog.csdn.net/weixin_42394170/article/details/108719980深度优先遍历深度优先遍历只需要依次访问结点即可,实现较为简单//深度优先遍历 void DFS(LGraph* g,int *visit,int v){ printf("Node: %d\n",v); ENode* p = g->a[v]; visit[v]原创 2020-09-23 13:44:54 · 4550 阅读 · 0 评论 -
《数据结构》C语言——邻接表的实现
***注:***本代码仅仅实现了邻接表的部分简单功能,为之后的深度、广度搜索打下基础#include<stdio.h>#include<stdlib.h>typedef struct ENode{ int adjVex; int w;//权值 struct ENode* nextArc; }ENode;typedef struct LGraph{ int n;//顶点数 int e;//边数 ENode** a;}LGraph; void Init原创 2020-09-21 21:45:54 · 1215 阅读 · 0 评论 -
《数据结构》C语言——排序算法的实现(选择、插入、冒泡、快速、归并排序、堆排序的实现)
注:在测试堆排序时,堆排序需要设置堆顶元素位置为1,我这里采用直接在创建队列让第一个作废(即,第一个输入-1,接下来再输入队列中的元素)//简单选择排序 void SelectSort(int* a,int n){ int i,j; for(i = 0;i<n-1;i++) { int min = i; for(j = i+1;j<n;j++) { if(a[min]>a[j]) { min = j; } } int temp =原创 2020-09-03 23:28:07 · 359 阅读 · 0 评论 -
《数据结构》C语言——二叉树的链式存储实现以及先序、中序、后序遍历的实现
#include<stdio.h>#include<stdlib.h>typedef struct BinaryTreeNode{ char data; struct BinaryTreeNode *lchild,*rchild;}BinaryTreeNode,*BinTree;void PreCreateBT(BinTree *t){ char ch; ch = getchar(); if(ch == '#') *t = NULL; else{原创 2020-06-24 22:40:19 · 1400 阅读 · 3 评论 -
《数据结构》C语言——后缀表达式求值
注:最主要需要注意的是代码中那个标注的getchar()函数的使用#include<stdio.h>#include<stdlib.h>#include<math.h>#define False 0#define True 1typedef struct{ int top; int maxSize; double *element;}Stack;//创建 void Create(Stack *S,int mSize){ S->ma原创 2020-06-23 18:46:22 · 8339 阅读 · 2 评论 -
《数据结构》C语言——循环队列的实现
循环队列的实现:#include<stdio.h>#include<stdlib.h>#define FALSE 0;#define TRUE 1;typedef int ElemType;typedef struct{ int front; int rear; int maxSize; ElemType *element; } Queue; void Create(Queue *Q,int mSize){ Q->maxSize = mSi原创 2020-06-11 22:24:43 · 195 阅读 · 0 评论 -
《数据结构》C语言——多项式的加法与乘法实现(带表头的单链表)
加法的算法我采用的书上的代码,应该没有错误。乘法是我自己写的,经过几种测试发现正常的输入是不会有问题的,如果在运行过程中有错误欢迎留言分享交流。注:p3链表创建时需要输入 0,-1才算创建成功。#include<stdio.h>#include<stdlib.h>typedef struct PNode{ int coef; int exp; struct PNode* link; } PNode; typedef struct { struct P原创 2020-05-18 22:10:45 · 552 阅读 · 2 评论 -
《数据结构》C语言——带表头的单链表实现
#include<stdio.h>#include<stdlib.h>#define ERROR 0#define OK 1//定义 typedef int ElemType;//用ElemType代替int typedef struct Node{ ElemType element; struct Node* link;}Node; typedef struct { struct Node* head; int n;}HeaderList;//***原创 2020-05-13 22:46:38 · 725 阅读 · 0 评论 -
《数据结构》C语言——单链表的实现(包括单链表的合并及其他算法)
这个文章中的算法会在之后不断更新,有兴趣的可以关注下#include<stdio.h>#include<stdlib.h>//定义 typedef int ElemType;//用ElemType代替int typedef struct Node{ ElemType element; struct Node* link;}Node; typedef struct { struct Node* first; int n;}SingleList;//****原创 2020-05-13 22:43:11 · 409 阅读 · 0 评论 -
《数据结构》C语言——线性表的顺序实现(包括顺序表的合并)
结合了两本教材的实现,各有可取之处#include<stdio.h>#include<stdlib.h>#define ERROR 0#define OK 1#define Overflow 2#define Underflow 3#define NotPresent 4#define Duplicate 5#define LISTINCREMENT 10typedef int ElemType;typedef struct{ int n; int原创 2020-05-13 22:25:33 · 1101 阅读 · 0 评论