数据结构
文章平均质量分 65
beautiful_Anne
这个作者很懒,什么都没留下…
展开
-
1003 Emergency (25 分) Dijkstra算法
#include <stdio.h>#include using namespace std;const int INF=1000;const int MAX =100;int number_city,number_road,first_city,last_city,rescue_sum[MAX]={0};typedef struct Graph{int rescue_people[MAX];int weight[MAX][MAX]; //要初始化为0}Graph;i原创 2021-05-04 20:29:44 · 75 阅读 · 0 评论 -
3.18队列
不要教条化数据结构,根据实际需要可以增加struct里面的东西。只是一种工具一.队列的顺序存储:本书采用,rear指向下一个应该要插入的地方(初始状态如此理解:下一个要插入的就是第一个元素,所以front=rear)(队尾进行插入,队首进行删除,联想排队即知)循环队列:①如何初始化Q.front=Q.rear=0判断栈空:Q.front=Q.rear②如何入队、出队。由于rear指向下一个要插入的地方,所以应该先给值,再指针移动Q.rear=(Q.rear+1)%MaxSize;③原创 2021-03-18 20:57:24 · 62 阅读 · 0 评论 -
3.17栈
我觉得key的是,通过物理结构的图,去写出结构体。栈是线性结构(一对一),物理存储可以用顺序栈和链栈两种方式。一. 顺序栈:有点类似静态链表“游标”的说法。但栈是只允许在一端插入删除。注意:删除操作,只是逻辑结构上的删除,数据实际还在内存里(因为是用移动top的方式来删除元素,其余看书即可)然后注意,top指针是从栈尾开始向栈顶走的。还要记一个公式二.共享栈由于顺序栈是通过静态数组的方式存储,内存大小是固定的,为了改变这个缺点,有两种方式:共享栈和链栈。共享栈是两个栈从两边往中间增长。原创 2021-03-17 22:07:59 · 80 阅读 · 0 评论 -
3.16/17链表
一.单链表建表:建表的时候要记得给链表L分配一个新的空间,并让头指针指向NULLL = (LinkList)malloc(sizeof(LinkList));L->next = NULL;#include <cstdio>#include <cstdlib>typedef struct LNode{ int data; LNode* next;}LNode,*LinkList; //定义结构体和结构体指针//①头插法建立单链表LinkList原创 2021-03-16 22:46:41 · 90 阅读 · 0 评论 -
3.15线性表的顺序表示
一.细节:①C++用& C用*②typedef struct{} SqList; 的格式,所以我的理解是:typedef给struct数据类型起一个别名叫做SqList。typedef:typedef给复杂的数据类型起一个别名,里如 typedef long long LL; 就可以用LL代替long long, 避免因在程序中出现大量的long long 而降低编码效率③ElemType:因为数据结构是讨论抽象的数据存储和算法的,一种结构中元素的类型不一定是整型、字符型、浮点型或者用户自定义原创 2021-03-15 22:56:33 · 86 阅读 · 0 评论 -
第二章 线性表——顺序存储:顺序表
一.顺序表(线性表)的定义细节C++用& C用*typedef静态分配#define MaxSize 10 // 定义最大长度typedef struct {int data[MaxSize]; // ElemType = int, * 用静态的“数组”存访数据元素int length; // 顺序表的当前长度} SqList;// 初始化顺序表void InitList(SqList &L) {L.length = 0; // 顺序表初始化为0原创 2021-01-19 19:35:42 · 140 阅读 · 0 评论