- 博客(18)
- 收藏
- 关注
原创 数据结构邻接表
深度遍历图的深度遍历是一个递归的过程,类似于树的先序遍历。遍历过程:从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的点,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。广度遍历...
2022-06-02 22:38:07 81
原创 16、N皇后问题
1、确认有无位置bool place(int* paraSolution, int paraT){ int j; for (j = 1; j < paraT; j ++){ if ((abs(paraT - j) == abs(paraSolution[j] - paraSolution[paraT])) || (paraSolution[j] == paraSolution[paraT])) return false; } re
2022-05-29 22:10:53 123
原创 15、哈夫曼树
1、构建节点typedef struct { int weight; int parent, left, right;}HTNode, *HuffmanTree;2、代码实现void Select(HuffmanTree HT, int end, int *s1, int *s2){ int min1, min2; int i = 1; while(HT[i].parent != 0 && i <= end){
2022-05-29 22:09:05 62
原创 14、二叉树
1、建立队列及二叉树节点typedef struct BTNode{ char element; BTNode* left; BTNode* right;} typedef struct BTNodePtrQueue{ BTNodePtr* nodePtrs; int front; int rear;}2、初始化QueuePtr initQueue(){ QueuePtr resultQueuePtr = (QueuePtr)malloc(sizeof(struct B
2022-05-24 20:45:28 60
原创 压缩矩阵的转置
建立矩阵typedef struct Triple{ int i; int j; elem e;} typedef struct CompressedMatrix{ int rows,columns,numElements; Triple* elements;}初始化CompressedMatrixPtr initCompressedMatrix(int paraRows, int paraColumns, int paraElements,
2022-05-19 22:29:24 58
原创 二维数组与矩阵乘法
建立二维数组及矩阵typedef struct TwoDArray{ int rows; int columns; int** elements;} typedef struct TwoDStaticArray{ int rows; int columns; int elements[ROWS][COLUMNS];}初始化TwoDArrayPtr initTwoDArray(int paraRows, int paraColumns){ int i; TwoDArra
2022-05-19 22:25:57 64
原创 数据结构-循环队列
为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连,把存储队列元素的表从逻辑上看成一个环,成为循环队列。(1)建立链表typedef struct CircleIntQueue{ int data[TOTAL_SPACE]; int head; int tail;}(2)初始化CircleIntQueuePtr initQueue
2022-05-17 21:58:26 85
原创 数据结构-链队列
链式队列的实现思想同顺序队列类似,只需创建两个指针(命名为 top 和 rear)分别指向链表中队列的队头元素和队尾元素图 所示为链式队列的初始状态,此时队列中没有存储任何数据元素,因此 top 和 rear 指针都同时指向头节点。(1)建立链队列及其结点typedef struct LinkNode{ int data; LinkNode* next;}*LinkNodePtr; typedef struct LinkQueue{ LinkNodePtr front; L..
2022-05-17 21:51:42 115
原创 栈与递归及其应用
(1)递归的实现int addTo(int paraN) { int tempSum; printf("entering addTo(%d)\r\n", paraN); if (paraN <= 0) { printf(" return 0\r\n"); return 0; } else { tempSum = addTo(paraN - 1) + paraN; printf(" return %d\r\n", tempSum); return tempSum; }
2022-05-12 22:00:01 80
原创 数据结构 C 代码 3.3: 栈的应用 -- 表达式求值
代码#include <iostream>#include <cstring>#include <algorithm>#include <stack>#include <unordered_map>using namespace std;stack<int> num;stack<char> op;void eval(){ auto b = num.top(); num.pop(
2022-05-10 19:38:48 290
原创 数据结构 C 代码 3.2: 栈的应用 -- 括号匹配
压栈void push(CharStackPtr paraStackPtr, int paraValue) { // Step 1. Space check. if (paraStackPtr->top >= STACK_MAX_SIZE - 1) { printf("Cannot push element: stack full.\r\n"); return; }//Of if // Step 2. Update
2022-05-10 19:31:59 58
原创 数据结构 C 代码 3.1: 栈
入栈void Push( T x )template <class T>void seqStack<T>::Push ( T x){ if (top==MAX_SIZE-1) throw “溢出”; top++; data[top]=x; } 栈顶T GetTop( )template <class T>T seqStack<T>::GetTop ( ){ if (Empt
2022-05-10 19:25:44 71
原创 多项式相加
1.建立链表typedef struct LinkNode{ int coefficient; int exponent; struct LinkNode *next;} 2.初始化链表LinkList initLinkList(){ LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode)); tempHeader->coefficient = 0; tempHeader->exponent =
2022-05-06 20:53:47 55
原创 数据结构双链表
1.建立链表typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;} 2.链表初始化DLNodePtr initLinkList(){ DLNodePtr tempHeader = (DLNodePtr)malloc(sizeof(struct DoubleLinkedNode)); te
2022-05-03 22:11:37 58
原创 数据结构静态链表
1.建立链表typedef struct StaticLinkedNode{ char data; int next;}typedef struct StaticLinkedList{ NodePtr nodes; int* used;} 2.初始化链表ListPtr initLinkedList(){ ListPtr tempPtr = (ListPtr)malloc(sizeof(StaticLinkedList)); t
2022-05-03 22:05:45 55
原创 2.单链表
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; re
2022-04-29 21:54:25 72
原创 1.顺序表
1.代码#include <stdio.h>#include <malloc.h>#define LIST_MAX_LENGTH 10typedef struct SequentialList { int actualLength; int data[LIST_MAX_LENGTH];} *SequentialListPtr;void outputList(SequentialListPtr paraList) { for(in
2022-04-25 22:10:36 173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人