自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

千言万语ROOM

倾尽一生,半世浮华!

  • 博客(14)
  • 问答 (13)
  • 收藏
  • 关注

原创 《数据结构》2.10设计一个算法,删除顺序表中值为item的元素,要求算法的时间复杂度是O(n),空间复杂度是O(1)

2.10 设计一个算法,删除顺序表中值为item的元素,要求算法的时间复杂度是O(n),空间复杂度是O(1)算法思想:设置两个指针,分别而从表的头和尾开始遍历,当遇到值为item的元素时,将右端 的uansu和左端的元素值交换。void Delete(List &L,int &item){ int i=1,j=L.length; while(i<j){ while(i<j&&L

2016-03-27 17:29:40 8305

原创 《数据结构》将一个带头结点的单链表分解成两个单链表

将一个带头结点的单链表分解成两个单链表题目描述:/*设计一个算法,将一个带头结点的单链表分解成两个具有相同结构的链表B和C,其中B白哦的结点为A中小于0的结点,C表的结点为A中大于0 的结点,要求B和C 仍利用A表的结点。 (A表的元素都是非0元素)*/算法思想:‘假设原来的连败哦是LA,将La,分解成LB和LC,首先需要生成两个头结点,LB和LC;设置

2016-03-22 15:24:18 20289 4

原创 《数据结构》2.4求两个递增链表的差集

2.4求连个递增来表的差集题目描述:已知A和B表是两个集合,其元素的值递增排列;设计一个算法,求A和B的差集,(即出现在A中但是不在B中) 结果放在A中,同时返回元素的个数。 算法思想:需要设置三个指针,pa,pb,pc;初始时,pa指向L1的第一个结点,pb指向第二个结点,pc指向L3求得头结点,L3=L1,即使用L1的头结点当做新链表L3的头结点。当pa和pb都

2016-03-18 12:55:36 3307 1

原创 《数据结构》2.3求两个递增链表的交集

2.3求两个递增链表的交集题目描述:已知两个链表A和B,分别表示两个集合,A和B的元素是递增的。设计一个算法求两个集合的交集,要求使用原来的存储空间。算法思路描述:/*算法思想:假设两个表分别是L1和L2,表的元素递增排列;需要3个指针,pa,pb,pc.指针的初始值是pa指向L1的第一个结点,pb指向L2的第一个结点,pc指向新表L3的头结点;初始时,L3指向

2016-03-14 22:25:00 2482

原创 《数据结构》2.1递增链表的合并

2.1递增链表的合并题目描述:设计一个算法将两个递增链表合并成一个递增链表,仍使用原来的存储空间,不申请新的存储空间,且新表中不能有重复元素。 假设要合并的两个链表的元素都是一次递增的。算法思想:设立三个指针pa,pb,pc,其中pa,pb执行LA,和LB中待比较的结点,而pc执行LC表当前最后一个结点。pa,pb,pc的初始值为:pa,pb指向LA和LB的第一

2016-03-12 11:07:12 887 1

原创 《数据结构》链式有序表的合并

链式有序表的合并算法思想:设立三个指针,pa,pb,pc,其中pa和pb分别指向La表和LB表当前待比较结点,而pc指向LC白哦当前最后一个结点。指针的初始值:pa和pb分别指向LA和LB表第一个结点,pc指向空表LC的头结点;然后比较指针a和pb所指向的元素的值,依次从表LA和LB“摘取”较小的元素插入LC表的最后。当其中一个表为空时,需要将另一个表的剩余段链接在pc所指的结点之

2016-03-09 13:07:40 5428

原创 《数据库》顺序有序表的合并

顺序有序表的合并算法思想:shoux9ian创建一个新表LC,通过比较指针pa和pb所指向的元素值,一次从表LA或表LB中“摘取”较小的元素插入到LC的最后,当其中一个表变为空时,说明此表的元素已经归并完毕,则需要将另一个非空表的剩余的元素一次插入到LC的最后面即可。分析:在该算法中5个指针:pa指向表LA的表头;pb指向表LB的表头;pc指向表LC的表头;pa_last指向表LA

2016-03-09 12:50:24 2479 2

原创 《数据结构》链栈

链栈链栈的存储结构与单链表的存储结构相同。由于栈是在栈顶进行删除和添加元素的,因此,将链表的首部作为栈顶是最方便的。而且没有必要像单链表那样为了操作简单而附加一个头结点。在链栈中注意指针的方向是从栈顶指向栈底。#include#define MAX 100typedef struct StackNode{ int data; struct StackNode *next;

2016-03-08 08:30:24 466

原创 《数据结构》顺序栈

栈对于栈,就是只能在栈顶(表尾)及逆行插入和删除的线性表。顺序栈是利用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的元素数据。分别使用top指针和base指针指向栈顶和栈底。栈为空的标志是:top==base.要注意的是:非空栈的栈顶指针总是指向栈顶元素的下一个位置。顺序栈的初始化:1.为栈分配一组辽宁徐的数组空间2.将栈置空,即栈顶指针和栈底

2016-03-08 08:07:22 660

原创 《数据结构》一般线性表的合并

一般线性表的合并算法思想:遍历表A和表B,查看B的每一个元素是否在A中,若不在,将B的该元素插入到A的表尾,A表的表长+1。算法的时间复杂度和A、B的长度有关,O(m*n).//合并void Combine(SqList &A,SqList &B){ for(int i=0;i<B.length;i++){ int count=0; for(int j=0;j<A.le

2016-03-05 18:11:54 13745

原创 《数据结构》双向链表的基本操作

双向链表的操作双向链表的基本操作包括:判断链表是否为空、计算链表的长度、遍历链表,这3中操作的方法和单链表一样,主要和双向链表中的指向后继的指针有关。双向链表的插入和删除操作和单链表是有区别的:双向链表的插入和删除操作要修改指向前驱和指向后继的指针。双向链表的删除:删除指定位置 i 的元素1.判断输入的删除的位置是否合法,12.顺着指向后继的指针域移动指针,找到第i-1个结点

2016-03-04 23:18:46 1002

原创 《数据结构》双向链表的创建

双向链表的创建双向链表的创建同样像单链表一样可以有两种方法:头插法和尾插法。使用尾插法创建双向链表:算法思想:先定义一个指针q指向头结点1.新结点p的前驱指向头结点L;2.新结点的next指针域置空;3.头结点的next指向p;4.q指向p.void CreateList1(DuLinkList &L,int n){ L=new DuLNode; L->ne

2016-03-03 18:23:35 1142

原创 《数据结构》单链表反转

单链表反转题目描述:/*设计一个算法,通过一趟遍历,将链表中所有的链接方向反转,仍利用原表的空间 */思想:先将链表的头结点指针域置空,p指向链表的第一个结点;q指向*p的后继,然后将*p插入到头结点的后面。void TurnList(LinkList &L){ struct LNode *p; p=L->next; L->next=NUL

2016-03-02 22:12:36 525

原创 《数据结构》只设置尾指针而不设置头指针的循环链表的合并

只设置尾指针而不设置头指针的讯循环链表的合并注意和设置头指针的循环链表的区别。在该算法中,专门定义了链表的尾指针,注意链表在定义,遍历,等操作上和折纸头指针的链表的区别。#include#includeusing namespace std;#define MAX 100typedef struct LNode{ int data; struct LNod

2016-03-01 15:58:12 3372

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除