![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 63
bestDEC
这个作者很懒,什么都没留下…
展开
-
数据结构之排序(四)
归并排序(空间复杂度是排序中最大的:O(n))#include<stdio.h>#include<stdlib.h>int *B = (int *)malloc(n* sizeof(int));//建立一个辅助数组Bvoid Merge(int A[], int low, int mid, int high) { int i,j,k; for (k = low;k <= high;k++) B[k] = A[k];//全部复制到b中...原创 2022-04-18 15:42:15 · 876 阅读 · 0 评论 -
数据结构之排序(三)
选择排序void swap(int &a, int &b) { int temp; temp = a; a = b; b = temp;}//直接选择排序void selectSort(int A[], int n) { for (int i = 0;i < n - 1;i++) { int min = i; for (int j = i + 1;j < n;j++) { ...原创 2022-04-17 12:09:18 · 836 阅读 · 0 评论 -
数据结构之排序(二)
交换排序//冒泡排序void swap(int &a, int&b) { int temp = a; a = b; b = temp;}void BubbleSort(int A[], int n) { int flag,i,j; for (i = 0;i < n - 1;i++) flag = false;//表示本次冒泡是否发生交换的标志 for (j = n - 1;j > i;j--) { ...原创 2022-04-16 11:46:57 · 802 阅读 · 0 评论 -
数据结构之排序(一)
插入排序//直接插入排序void InsertSort(int A[], int n) { int i, j; for (i = 2;i <= n;i++) { if (A[i] < A[i - 1]) { A[0] = A[i];//复制为哨兵,不存元素 for (j = i - 1;A[0] < A[j];--j) A[j + 1] = A[j]; ...原创 2022-04-15 16:52:10 · 809 阅读 · 0 评论 -
数据结构之图的遍历
#include<stdio.h>bool visited[MAX_VERTEX_NUM];//用辅助队列的方式进行广度优先排序void BFSTraverse(Graph G) { for (int i = 0;i < G.vexnum;++i) { visited[i] = false; } InitQueue(Q); for (int i = 0;i < G.vexnum;++i) { if (!visite...原创 2022-04-10 11:32:28 · 894 阅读 · 0 评论 -
数据结构之线索二叉树
一 .二叉树线索化#include<stdio.h>typedef struct ThreadNode { int data; struct ThreadNode *lchild, *rchild; int ltag,rtag;}ThreadNode,*ThreadNode;//对二叉树线索化ThreadNode *pre = NULL;void visit(ThreadNode *q) { if (q->lchild == NULL) {...原创 2022-04-07 11:57:03 · 771 阅读 · 1 评论 -
数据结构之串
#define MAXLEN 20typedef struct { char ch[MAXLEN]; int length;}SString;//求子串bool SubString(SString &Sub, SString S, int pos, int len) { if (pos + len + 1 > S.length) return false; for (int i = pos;i < pos + len;i++) {...原创 2022-04-03 17:28:45 · 926 阅读 · 0 评论 -
数据结构之队列
一 顺序存储#include<stdio.h>#define MaxSize 10typedef struct { int data[MaxSize]; int front, rear;}SqQueue;void InitQueue(SqQueue &Q) { Q.rear = Q.front = 0;}//初始化bool QueueEmpty(SqQueue &Q) { if (Q.rear == Q.front) ...原创 2022-03-31 15:00:49 · 68 阅读 · 1 评论 -
数据结构之线性表
链表#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>typedef struct LNode { int data; struct LNode* next;}LNode, *LinkList;bool InitList(LinkList &L){ L = (LNode*)malloc(sizeof(LNode)); if (L == NULL)...原创 2022-03-27 12:22:16 · 1263 阅读 · 0 评论 -
数据结构之线性表
顺序表 (动态分配):#include<stdio.h>#include<stdlib.h>#define InitSize 10//顺序表的初始长度typedef struct { int *data; int MaxSize; int length;}SeqList;void InitList(SeqList &L) { L.data = (int*)malloc(InitSize * sizeof(int)); L....原创 2022-03-26 11:18:34 · 1457 阅读 · 0 评论