数据结构
文章平均质量分 72
程序猿~~~
这个作者很懒,什么都没留下…
展开
-
带头结点的单向链表(创建、删除)
带头结点的单向链表带有表头结点,头结点有前驱,所有结点都有前驱插入与删除不需要分头、 中间、 尾查找链表结点时不需要两指针联动typedef struct node{ int data; //数据域 struct node*next; //指针域,存放下一个结点的地址}ElemSN;带表头结点的单向链表的创建//建链ElemSN *Greatlink(int a[...原创 2019-06-05 11:15:51 · 2810 阅读 · 0 评论 -
栈的应用——四则运算(逆波兰表达式)
逆波兰表达式前缀表达式、中缀表达式、后缀表达式(逆波兰表达式)都是四则运算的表达方式,用以四则运算表达式求值 ,即数学表达式的求值(1)a - b * c + d:中缀表达式 (Infix Notation),原因是运算符号在两个运算对象的中间。(2)+ - a * b c d:前缀表达式 (Prefix Notation),又叫波兰表达式,运算符在运算对象前面,又称为波兰表达式。(3...原创 2019-06-11 14:33:57 · 698 阅读 · 0 评论 -
两个非空单向链表是否有交叉点(链表和栈两种方法)
两个非空单向链表是否有交叉点,若有交点,返回公共交点的地址,若没有交点,返回NULL原创 2019-06-10 17:54:08 · 341 阅读 · 0 评论 -
单向循环链表
单向循环链表尾结点的指针域指向头结点单向循环链表中没有NULL可以在链表上多次往复循环在插入、删除算法上遵循单向链表单向循环链表的创建单向循环链表的输出(!!!)...原创 2019-06-03 17:01:23 · 305 阅读 · 0 评论 -
约瑟夫环问题
基础约瑟夫环输入1,2,3,4,5,6,7,8,9,10,每三个数输出一个数字,要求输出结果为3,6,9,2,7,1,8,5,10,4核心代码ElemSN*TosephusRing(ElemSN*t,int s) //返回尾结点{ ElemSN *hn=NULL,*tn,*h; while(t-t->next){ for(int i=0;i<s-1;i++) ...原创 2019-06-03 16:59:34 · 246 阅读 · 0 评论 -
不带头结点的单向链表(题目总结!!!)
链表基础知识汇总**一.不带头结点的链表**原创 2019-06-05 10:52:08 · 1788 阅读 · 0 评论 -
判断一个非空单向链表是否带环
判断一个非空单向链表是否带环,带环返回1,不带环返回0注意:如果链表带环,一定是尾部带环(因为每个结点中只有一个指向其直接后继的指针)**方法:**长短指针遍历链表,如果两指针指向的结点可以相遇,证明带环;(形象的说 操场跑圈扣圈了)int Ring(ElemSN *h) { ElemSN *p,*q; for(q=h,p=h->next ; q-p&&p&...原创 2019-06-08 00:34:27 · 227 阅读 · 0 评论 -
数据结构与算法——引论
数据结构的概念数据结构主要是研究数据(特别时非数值型数据)的组织、存储、及运算方法的课程数据结构的内容数据的逻辑结构 根据元素之间关系的不同特性,通常有四种基本结构1.集合结构2.线性结构3.树形结构4 .图形结构数据的存储结构1.顺序存储:用连续的存储单元进行存储,地址可以计算借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系2.链式存储:地址不可以计算,只能以存...原创 2019-06-02 13:57:23 · 402 阅读 · 0 评论 -
链表知识清单汇总
带头结点单向链表:固定一个节点作为头结点(数据域不保存有效数据),起一个标志位的作用,以后不管链表节点如果改变,此头结点固定不变。不带头结点单向链表:头结点不固定,根据实际需要变换头结点(如在原来头结点前插入新结点,然后,新结点重新作为链表的头结点)。双向链表:结点的指针域有两个指针,可以从正反两个方向,对链表进行操作循环链表:结点的指针域有两个指针,链表首尾相连...原创 2019-06-05 15:17:44 · 229 阅读 · 0 评论 -
双向链表知识总结
双向链表双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。数据域,两个指针域typedef struct node{ int data; struct node *prior,*next;}dlinklist;初始化双向链表...原创 2019-06-05 15:11:56 · 1781 阅读 · 3 评论 -
队列——解决约瑟夫环问题
**队列(Queue)**是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表1.允许删除的一端称为队头(front)2.允许插入的一端称为队尾(rear)3.当队列中没有元素时称为空队列#include<stdio.h>#include<stdlib.h>//10个小孩,每3个出来一个小孩,则小孩出队序号为 : 3 6 9 2 ...原创 2019-06-11 15:19:22 · 3861 阅读 · 1 评论