数据结构
数据结构的学习
想了半天也不知道取什么名字
萌新上道
展开
-
数据结构第十四天——几种常见的排序算法
代码】数据结构第十四天——几种常见的排序算法。原创 2022-08-02 18:35:14 · 41 阅读 · 0 评论 -
数据结构第十三天——顺序查找、二分查找和哈希查找
无原创 2022-06-06 19:54:18 · 433 阅读 · 0 评论 -
数据结构第十二天——普利姆算法和迪杰斯特拉算法
无原创 2022-06-04 17:44:14 · 2457 阅读 · 0 评论 -
数据结构第十一天——图的遍历、邻接表
图(Graph)是由顶点 (Vertex) 的有穷非空集合 和顶点之间边的集合组成,通常表示为:G(V, E) , 其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。一、图的遍历总代码#include<stdio.h>#include<stdlib.h>int *visitedPtr;/** *队列 */ typedef struct GraphNodeQueue{ int *nodes; int front; int rear;..原创 2022-05-30 21:27:50 · 198 阅读 · 0 评论 -
数据结构第十天——N皇后问题,哈夫曼树的编码与解码
一、N皇后问题#include<stdio.h>#include<stdlib.h>#include<math.h>int place(int *paraSolution, int paraT) { int j; for (j = 1; j < paraT; j ++) { if ((abs(paraT - j) == abs(paraSolution[j] - paraSolution[paraT])) || paraSolution[j]原创 2022-05-27 19:18:23 · 165 阅读 · 0 评论 -
数据结构第九天——二叉树的构建与遍历
1、树的创建typedef struct BTNode{ char element; struct BTNode *left; struct BTNode *right;} BTNode, *BTNodePtr;2、队列的创建typedef struct BTNodePtrQueue{ BTNodePtr *nodePtrs; int front; int rear;} BTNodePtrQueue, *QueuePtr;3、队列初始化QueuePtr initQu原创 2022-05-23 17:03:34 · 116 阅读 · 0 评论 -
数据结构第八天——二维数组及矩阵乘法,还有压缩矩阵的转置
第一首先是矩阵乘法#include<stdio.h>#include<stdlib.h>/** *动态二维数组 */ typedef struct TwoDArray{ int rows; int columns; int **elements;} TwoDArray, *TwoDArrayPtr;/** *静态二维数组 */ typedef struct TwoDStaticArray{ int rows; int columns; i原创 2022-05-18 22:10:42 · 236 阅读 · 0 评论 -
数据结构第七天——队列,循环队列
一、队列#include<stdio.h>#include<stdlib.h>/** *队列结点 */ typedef struct LinkNode{ int data; struct LinkNode *next;} *LinkNodePtr;/** *链队列 */ typedef struct LinkQueue{ LinkNodePtr front; LinkNodePtr rear;} *LinkQueuePtr; /**原创 2022-05-16 13:26:27 · 276 阅读 · 0 评论 -
数据结构第六天——累加的递归,汉诺塔
一、累加的递归核心代码int addTo(int paraN) { int tempSum; printf("entering addTo(%d)\n", paraN); if (paraN <= 0) { printf(" return 0\n"); return 0; } else { tempSum = addTo(paraN - 1) + paraN; printf(" return %d\n", tempSum); return tempSum原创 2022-05-11 19:39:00 · 300 阅读 · 0 评论 -
数据结构第五天——栈及部分应用
包含栈的一些基本功能,还有部分应用,括号匹配和表达式求值一、栈的基本功能1.建立typedef struct CharStack{ int top; char data[10];} *CharStackPtr;2.初始化CharStackPtr charStackInit() { CharStackPtr resultPtr = (CharStackPtr)malloc(sizeof(struct CharStack)); resultPtr->top = -1;原创 2022-05-10 13:13:14 · 269 阅读 · 0 评论 -
数据结构第四天——多项式加法
核心加法void add(NodePtr paraList1, NodePtr paraList2){ NodePtr p, q, r, s; p = paraList1->next; printNode(p, 'p'); q = paraList2->next; printNode(q, 'q'); r = paraList1; printNode(r, 'r'); free(paraList2); while ((p != NULL) && (原创 2022-05-04 21:28:02 · 812 阅读 · 0 评论 -
数据结构第三天——双向链表、静态链表
首先是双向链表1.创建typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;} DLNode, *DLNodePtr;2.初始化DLNodePtr initLinkList(){ DLNodePtr tempHeader = (DLNodePtr)malloc(sizeof(DLNode)); tempHeader原创 2022-05-02 12:58:59 · 590 阅读 · 0 评论 -
数据结构第二天——单链表
1.创建typedef struct LinkNode{ char data; struct LinkNode *next;} LNode, *LinkList, *NodePtr;2.初始化有头结点的链表LinkList initLinkList(){ NodePtr tempHeader = (NodePtr)malloc(sizeof(LNode)); tempHeader->data = '\0'; tempHeader->next = NULL; retu原创 2022-04-27 20:39:20 · 330 阅读 · 0 评论 -
数据结构第一天——线性表
创建线性表typedef struct SequentialList { int data[LIST_MAX_LENGTH]; int actuallength;} *SequentialListPtr; 输出线性表void outputList(SequentialListPtr paralist) { int i; for(i = 0; i < paralist->actuallength; i ++) { printf("%d ", paralist-&g原创 2022-04-25 22:58:06 · 59 阅读 · 0 评论