数据结构
__Coder__
Coding is the lifeline.
展开
-
邻接表的NextNeighbor(G,x,y)返回值问题
王道数据结构第6章图归纳总结中给出的NextNeighbor函数以下是邻接表的定义typedef struct ArcNode{ //边表结点 int adjvex; //该弧所指向的顶点的位置 struct ArcNode *next; //指向下一条弧的指针 // int data; //网的边权值} ArcNode;typedef struct VNode{原创 2021-12-12 22:32:45 · 3443 阅读 · 3 评论 -
【数据结构】共享栈
设有两个栈s1、s2都采用顺序栈方式,并且共享一个存储区[0,…,maxsize-1],为了尽量利用空间,减少溢出的可能,可采用栈顶相向,迎面增长的存储方式。试设计s1、s2有关入栈和出栈的操作算法。#include <cstdio>#include <iostream>#define maxsize 100using namespace std;typedef struct { int stack[maxsize]; int top[2];}stk;stk s;原创 2021-10-28 17:13:05 · 818 阅读 · 0 评论 -
【数据结构】二叉树的一般遍历
//先序遍历 (根左右)void PreOrder(BiTree T) { if (T != NULL) { visit(T); //访问根结点 PreOrder(T->lchild); //访问左孩子 PreOrder(T->rchild); //访问右孩子 }}//中序遍历 (左根右)void InOrder(BiTree T) { if (T != NULL) { InOrder(T->lchild); visit(T); InOrde原创 2021-10-24 00:57:38 · 1942 阅读 · 0 评论 -
【数据结构】C++STL库中双链表的应用
#include <iostream>#include <list>using namespace std;int main(){ list<char> L; //用于生成管理char型元素的双向链表 L.push_front('b'); //在表的开头添加元素 b [b] L.push_back('c'); //在表的末尾添加元素 c [bc] L.push_front('a'); //在表的开头添加元素 a [abc] cout<<原创 2021-10-23 16:17:32 · 196 阅读 · 0 评论 -
【数据结构】使用队列实现循环调度法
现有名称为namei且处理时间为timei的n个任务按照顺序排成一列,CPU通过循环调度法逐一处理这些任务,每个任务最多处理q ms(这个时间称为时间片)。如果q ms之后任务尚未处理完毕,那么该任务将被移动至队伍最末尾,CPU随即开始处理下一个任务。举个例子,假设q是100,然后有如下任务队列。A(150) – B(80) – C(200) – D(200)首先A被处理100 ms,然后带着剩余的50 ms移动至队尾B(80) – C(200) – D(200) – A(50)随后B被处理80 m原创 2021-10-22 10:17:55 · 691 阅读 · 0 评论 -
【数据结构】使用栈计算后缀表达式
#include <cstdio>#include <cstdlib>#include <cstring>#define Maxsize 2000int S[Maxsize], top;void push(int x) { S[++top] = x;}int pop() { top--; return S[top + 1];}int main() { int a, b; char s[1000]; while (scanf("%s", s)原创 2021-10-22 00:29:33 · 111 阅读 · 0 评论 -
【数据结构】合并链表
//将两个单链表合并为一个新的链表,并由函数返回结果单链表#include <stdio.h>#include <stdlib.h>typedef struct LNode { int data; struct LNode* next;}LNode, * LinkList;void CreateLinkList(LinkList& L, int n) { L = (LinkList)malloc(sizeof(LNode)); LNode* p, * q;原创 2021-10-16 17:09:38 · 307 阅读 · 0 评论 -
【数据结构】单链表倒置
我们清楚,单链表的创建有两种方法:尾插法和头插法。尾插法是按照输入的顺序创建单链表,而头插法则是按照输入的逆序创建单链表。typedef struct LNode { int data; //数据域 struct LNode* next; //指针域}LNode,* LinkList;//创建单链表的结构体//尾插法void CreateLinkList(LinkList& L, int n) { LNode* p, * q; L = (LinkList)malloc(size原创 2021-10-15 11:10:52 · 1366 阅读 · 0 评论 -
【数据结构】给定两个单链表,编写算法找出两个链表的公共结点
#include<stdio.h>#include<stdlib.h>#define MAX 100int cnt=0,a[MAX];typedef struct LNode{ int data; struct LNode *next; }LNode,* LinkList;//创建单链表(逆序)LinkList CreateList(struct LNode *L,int n){ L=(LinkList)malloc(sizeof(LNode)); L原创 2021-10-12 19:46:14 · 2859 阅读 · 2 评论