- 博客(11)
- 收藏
- 关注
原创 数据结构(无向图的邻接表创建)
邻接表:下图为一个无向图的邻接表结构在图中 data和firstedge在顶点表中,data存储顶点的信息firstedge指向边表的第一个结点。边表结点由adjvex与next两个域组成,其中adjvex用于存储某顶点的邻接点在顶点表的下标。next则存储指向边表中下一个结点的指针。对于带权值的网图,可以在边表结点定义增加一个weight的数据域用于存储权值信息。对于结点定义的代码:typedef struct Ding//顶点表结点 { char data;//顶点信息 str
2021-04-14 20:48:13
9422
1
原创 数据结构(二叉树的遍历)
二叉树的定义:二叉树是一种特殊的树,每个结点最多有两棵子树。二叉链表结点的结构定义:typedef struct BiTNode{ char data; struct BiTNode *lchild, *rchild;}BiTNode,*BiTree;二叉树的建立:BiTree creat(){ char ch; scanf("%c",&ch); BiTree T; if(ch=='#') T=NULL; else { T=(BiTree)malloc(
2021-04-09 00:31:10
262
原创 数据结构----(树的三种遍历)
二叉树的三种遍历方法:前序遍历:根节点->左子树->右子树(根节点在前面)(ABDFECGHI)代码实现:void pre_traverse(BTree pTree){ if(PtRee) { printf("%c ",pTree->data); if(pTree->pLchild) pre_traverse(pTree->pLchild); if(pTree->pRchi
2021-04-08 15:09:05
290
原创 数据结构-----(树)
树的定义:线性表、栈、队列、串是一对一的数据结构,而树是一对多的数据结构。树(Tree)是n(n≥0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、……、Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)树的特点:1.每个结点有零个或多个子结点;2.没有父结点的结点为根结点;3.每一个非根结点只有一个父结点;4.每个结点及其后代结
2021-04-08 14:35:42
191
原创 数据结构----栈(共享栈,链栈)
共享栈:利用栈底位置相对不变的特性,可让两个顺序栈共享一个一维数据空间,将两个栈的栈底分别设置在共享空间的两端,两个栈顶向共享空间的中间延伸。连个栈的栈顶指针都指向栈顶元素,top0=-1时,0号占位空,top1=MaxSize-1时1号栈为空; 仅当两个栈顶指针相邻(top1-top0=1)时,判断为栈满。当0号栈进栈时,top0先加1,在赋值,1号栈进栈时top1先减去1在赋值;出栈时刚刚相反。 共享栈时为了有效利用存储空间,两个栈的空间相互调节,只在整个存储空间被占
2021-04-08 13:46:25
1026
原创 数据结构----栈(入栈与出栈)
栈: 数据进出,类向箱子放东西和拿东西,先进后出,或者说后进先出。栈分为静态栈和动态栈两种,静态栈用数组实现,动态栈用链表实现。算法 出栈 入栈(压栈),遍历,清空。创建栈:#define MaxSize 100 //定义栈中元素的最大个数typedef struct{ Elemtype data[MaxSize]; int top;}SqStack;入栈与出栈:入栈: bool Push(SqStack &am
2021-04-08 13:16:18
4109
原创 XUPT新生赛题目回顾(2)
题目J:DescriptionACM-ICPC以团队的形式代表各学校参赛,每队由至多3名队员组成。每位队员必须是在校学生,有一定的年龄限制,并且每年最多可以参加2站区域选拔赛。比赛期间,每队使用1台电脑利用C/C++、Java和Python中的一种编写程序解决7到13个问题。程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队。而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球,每道题目第一支解决掉它的队还会额外获得一个“FIRST PROBLEM SO
2020-12-28 18:28:19
245
原创 XUPT新生赛题目回顾(1)
题目A:一天,聪明王在家中写作业,一共有n门课的作业,现在他知道自己写完每门作业的时间。他的妈妈可能随时会回来,他想在他的妈妈回来时尽可能的写完多的科目(显得自己很努力),他该如何安排写作业的顺序呢?聪明的你帮他安排一下吧。Input第一行输入一个数n,接下来n行,每行有两个输入,第一个是科目名称,第二个是一个整数x,表示完成这门课所需要时间。输入保证科目名称不会超过100个字符、各科目所需的时间都不相同Output输出一行,n个科目名称,代表完成作业的顺序思路:由题目可知每组数据分为科目与
2020-12-28 18:09:53
219
原创 关于链表的头插法与尾插法
这周在软协公开课上听杨某某学长讲的关于链表的相关内容后我感觉受益匪浅,于是想写下听课后我对创建链表的基本方法头插法和尾插法的认识。一·头插法:我们先创建一个 head指针并为head指针申请内存作为头指针,然后再创建各个结点每次都让新的结点插入头结点之后完整代码:node *app(){ node *head=(node *)malloc(sizeof(node));//创建头结点 head->next=NULL; int data; while(scanf("%d",&
2020-12-13 20:19:27
533
原创 软协学习第二周算法题
题目描述王老师正在教简单算术运算。细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习。 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效率。王老师希望尽量减少输入的工作量,比如5+8的算式最好只要输入5和8,输出的结果要尽量详细以方便后期排版的使用,比如对于上述输入进行处理后输出 5+8=13 以及该算式的总长度6。王老师把这个光荣的任务交给你,请你帮他编程实现以上功能。输入格式第一行为数值i接着的i行为需要输入的算式,每行可能有三个数据或两个数据。若该行为三个数据
2020-12-03 21:41:24
448
原创 在软件科技协会学习第一周学习内容(感觉这个高精度计算阶乘和比较有趣就写下来了)
在做题过程中遇到了高精度方面的内容题目描述用高精度计算出S=1!+2!+3!+…+n! (n≤50)S=1!+2!+3!+…+n!(n≤50)其中“!”表示阶乘,例如:5!=5×4×3×2×1。输入格式一个正整数N。输出格式一个正整数S,表示计算结果。于是再次复习了运用字符串进行高精度运算的内容并解决了题目解答首先设出两个数组,分别表示每个数的阶乘与前N项的阶乘和 int i,j,k,n,s[10000]={1},a[10000]={1},d=1;//其中S为阶乘和,a为某项的阶乘,
2020-11-28 21:01:46
148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅