![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构_线性表
never give-up
代码从入门到放弃
展开
-
2.11
2.11 已知一个无序单链表,表中结点data字段为正整数。试编写算法按递增次序打印表中结点的值用其他方法如果指针学的一般就理解起来就很迷,本题我采用的方法应该是最好理解的(个人观点,有意见可以评论交流,方便我改善代码)#include<iostream>#define MaxSize 100using namespace std;struct LinkList{ LinkList *next; int val;};int v[MaxSize];void Inc原创 2021-02-18 21:55:57 · 158 阅读 · 0 评论 -
2.10
2.10 已知一个单链表,试编写复制单链表的算法#include<iostream>using namespace std;struct SqList{ SqList *next; int val;};void Copy(SqList *L){ SqList *Ln=new SqList;//Ln为复制后的链表 SqList *rn=Ln;//还是采用尾插法 while(L){//有多少复制多少 SqList *p=new Sq原创 2021-02-18 21:22:56 · 226 阅读 · 0 评论 -
2.9
2.9 试编写算法,求循环链表中结点的个数/*试编写算法,求循环链表中结点的个数*/#include<iostream>using namespace std;struct SqList{ SqList *next; int val;};void Count(SqList *L){ SqList *t=L;//记录头结点 L=L->next; int s=0; while(L->next!=t->next){//从第原创 2021-02-18 21:01:02 · 212 阅读 · 0 评论 -
2.8
2.8 设表L用数组表示,且各元素值递增有序,将元素x插入到表L的适当位置,使得表中元素仍保持递增有序。此题分情况讨论#include<iostream>using namespace std;#define MaxSize 100using namespace std;struct SqList{ int a[MaxSize]; int len;};void Judge(SqList *L,int x){ int j=0; for(int i=原创 2021-02-17 20:43:46 · 258 阅读 · 0 评论 -
2.7
2.7 试编写算法,根据一个元素类型为整型的单链表生成两个单链表,使得第一个单链表中包含原单链表中所有元素值为奇数的结点,第二个单链表中包含原单链表中所有元素值为偶数的结点,原有单链表保持不变。#include<iostream>using namespace std;struct LinkList{ int val; LinkList *next;};LinkList *L1=new LinkList,*L2=new LinkList;LinkList *r1=L原创 2021-02-17 19:40:30 · 325 阅读 · 0 评论 -
2.6
2.6 试编写算法,将元素为整数的顺序表(a1,a2,…,an)重新排列为以a1为界的两部分:a1前面的值均比a1小,a1后面的值都比a1大,要求算法的时间复杂度为O(n)。#include<iostream>#define MaxSize 100using namespace std;struct SqList{ int a[MaxSize]; int len;};void ReOrder(SqList *L){ int j=L->len;//记录存原创 2021-02-17 18:04:06 · 522 阅读 · 0 评论 -
2.5
2.5 试编写算法,从顺序表中删除所有值重复的元素,是所有元素的值均不同。注意表中未必是排好序的,且每个值的第一次出现应当保留#include<iostream>#define MaxSize 100using namespace std;int s,t;bool v[MaxSize];struct SqList{ int a[MaxSize]; int len;};void Del(SqList *L){ for(int i=0;i<L->原创 2021-02-16 20:50:15 · 93 阅读 · 0 评论 -
2.4
2.4 试编写算法,从有序表中删除其值在给定值s和t(s<t)之间的所有元素由于题目没有额外要求,代码就没有判断是否为空的顺序表~#include<iostream>#define MaxSize 100using namespace std;int s,t;struct SqList{ int a[MaxSize]; int len;};void Del(SqList *L,int s,int t){ int i=0,j=0; while原创 2021-02-16 18:27:08 · 76 阅读 · 0 评论 -
2.3
2.3 试编写算法,从顺序表中删除具有给定值x的所有元素#include<iostream>#define MaxSize 100using namespace std;int n;struct SqList{ int a[MaxSize]; int len;};void Del(SqList *L,int x){ int i=0,j=0; while(i<L->len){ if(L->a[i]==x) i++;原创 2021-02-16 17:29:01 · 83 阅读 · 0 评论 -
2.2
2.2 试编写算法,从顺序表中删除具有最小值的元素并由函数返回最小值,空出的位置由最后一个元素填补;若顺序表为空,则显示出错误信息并退出运行。#include<iostream>#define MaxSize 100using namespace std;struct SqList{ int a[MaxSize]; int len;};int Delete(SqList *p){ if(p->len==0) { cout<<原创 2021-02-16 16:59:21 · 110 阅读 · 0 评论 -
线性表章节知识
ai-1称为ai的直接前驱(简称前驱),ai+1称为ai的 直接后继(简称后继)非空线性表的特点:仅有一个表头结点a1,没有前驱,仅有一个后继a2。线性表有两种存储结构:顺序存储和链式存储顺序表随机存取的特点:可以在O(1)时间内存取数据元素...原创 2021-02-15 20:41:53 · 326 阅读 · 0 评论 -
顺序表
简要的写了下顺序存储的代码,防止遇到顺序存储这样的题目要求#include<iostream>#define MaxSize 100using namespace std;struct SqList{ int a[MaxSize];//存放数据元素的数组 int len;//顺序表中元素的个数 };void read(SqList *L){ for(int i=0;i<L->len;i++) cout<<L->a[i]<<" "原创 2021-02-15 18:53:22 · 72 阅读 · 1 评论