![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 50
小马过河看小牛试刀
这个作者很懒,什么都没留下…
展开
-
删除整数顺序表 L 中所有值在[x,y]范围内的元素
任务描述本关任务:设计一个高效的用于删除整数顺序表 L 中所有值在[x,y]范围内的元素的算法。阅读以下的算法代码,试着分析它的效率void fun1(SqList *&L,ElemType x,ElemType y) { int i,j; for (i=0;i<L->length;i++) if (L->data[i]>=x && L->data[i]<=y) {原创 2022-04-17 22:16:02 · 5419 阅读 · 1 评论 -
删除单链表中指定值的所有结点
任务描述本关任务:在带头结点的单链表L中,删除所有值为x的结点,并释放其空间,假设值为x的结点不唯一,编写算法实现上述操作。相关知识常见的链表的操作有哪些?操作一:链表反转这个面试题是出现频率最高的,为了考察逻辑思维能力与代码能力。代码不难但还是有其复杂之处,值得我们深入研究。操作二:链表是否有环以及环的入口编程要求完成函数 void del_x(LinkNode *&L,int x); 的编写,并在主程序中调用,完成相关测试。要求:考虑算法效率,不能采用暴力原创 2022-04-17 22:11:32 · 2175 阅读 · 2 评论 -
链式结构中快慢指针的使用
任务描述一个线性表(a1,a2,…,an)(n>3)采用带头结点的单链表L存储。设计一个高效算法求中间位置的元素(即序号为n/2的元素)。相关知识这个问题也是利用了链表的长度无法直接获取的不足做文章,解决办法如下:一个暴力的办法是,先通过一次遍历去计算链表的长度,这样我们就知道了链表中间位置是第几个。接着再通过一次遍历去查找这个位置的数值。除此之外,还有一个巧妙的办法,就是利用快慢指针进行处理。其中快指针每次循环向后跳转两次,而慢指针每次向后跳转一次。解题思路让 p、q原创 2022-04-17 22:06:44 · 1721 阅读 · 0 评论 -
顺序表的基本操作(2)——逆置操作
任务描述编写顺序表的逆置操作函数。相关知识关于逆置,有一种非常暴力的解决方法,就是单独开辟一个同等大小的顺序表,然后新表从前往后遍历,同时原表从后往前遍历,依次赋值,最后得到的就是逆置后的顺序表。但这种方法的空间复杂度为O(n),所以并不能这么做。顺序表的就地逆置,只需让顺序表中的数据元素头尾依次交换即可,即交换第一个元素和最后一个元素,第二个和倒数第二个,依此类推,这种方法的空间复杂度为O(1)。编程要求根据提示,在编辑器 Begin-End 区间补充代码,完成顺序表的逆置操作原创 2022-03-27 10:12:06 · 3246 阅读 · 0 评论 -
顺序表的基本操作(1)——插入操作
顺序表的插入运算线性表的插入运算是指在表的第i (1≤i≤n+1)个位置,插入一个新元素x,使长度为n的线性表 ( a1,…,ai−1,ai,…,an) 变成长度为n+1的线性表( a1,…,ai−1,x,ai+1,…,an) 。算法思想:用顺序表作为线性表的存储结构时,由于结点的物理顺序必须和结点的逻辑顺序保持一致,因此我们必须将原表中位置n-1,n-2,…,i-1上的结点,依次后移到位置n,n-1,…,i上,空出第i-1个位置,然后在该位置上插入新结点x。当i=n+1时,是指..原创 2022-03-27 09:39:51 · 25808 阅读 · 2 评论 -
链表实现对员工进行信息管理
头文件:(define.h)#ifndef DEFINE_H_INCLUDED#define DEFINE_H_INCLUDED#include <stdio.h>#include <stdlib.h>#include<malloc.h>#define MaxSize 50typedef struct LNode{ char position[20]; char number[20]; char name[20];原创 2022-03-20 23:35:02 · 745 阅读 · 0 评论 -
线性表基础实践:实现对员工进行信息管理(结构体基础运用)
一、线性表定义线性表(Linear List):由同类型数据元素构成有序序列的线性结构。主要有顺序储存结构和链式储存结构。两种结构各有优缺点。①线性表的顺序存储实现:利用数组的连续存储空间顺序存放线性表的各元素。②线性表的链式存储实现:不要求逻辑上相邻的两个元素物理上也相邻;通过“链”建立起数据元素之间的逻辑关系。二、结构体基础在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被原创 2022-03-17 11:58:35 · 2224 阅读 · 1 评论 -
多文件组织形式实现计算器(包括加、减、乘、除等运算,各运算用函数来独立实现)
请完成一个以引用的方式来完一个两个数的计算器(包括加、减、乘、除等运算,各运算用函数来独立实现),以多文件组织形式呈现。通过阅读题目发现要求“以引用方式”来完成项目,于是选择C++完成。因为要求以“多文件组织”形式呈现,故建立一个基础项目,以最基础的三个文件构成,分别为:头文件(jisuan.h)、功能函数文件(f.cpp)、主函数main()文件(main.cpp)。头文件(jisuan.h):#include <stdio.h>int add(int &a,int原创 2022-03-08 16:58:49 · 1356 阅读 · 0 评论