数据结构
Uaena(✿◡‿◡)
这个作者很懒,什么都没留下…
展开
-
顺序表的基本操作(2)(合并,划分)
一、合并1.1已知线性表La和Lb中的数据元素仍按非递减有序排列,将La和Lb归并为一个新的线性表,且Lc的数据元素仍按非递减有序排列。 这个问题可以有很多种方法解决,最简单的操作过程是:先分别La和Lb中的元素赋到Lc中,然后重新排序(低效)。比较高效的做法:为La和Lb设两个指示器i和j,分别指向当前最小的元素,开始是分别指向La和Lb的第一个元素。然后让i和j所指向的元素比较,小者先行置入Lc中,并且该指示器后移,继续i和j所指向的元素比较,知道一个表的元素全部置入Lc中,然后把另一个原创 2021-07-17 22:48:06 · 1053 阅读 · 1 评论 -
顺序表的基本操作(查找,插入,删除)
一、查找按值查找:在顺序表中从头查找结点值等于给定值x的结点int Find_1(SqList L,ElemType x){ int i=1; ElemType *p; for(p=L.elem;p;p++)//p++将指针p进到L.elem[]的下一个元素位置 { if(*p!=x) i++; else break; } if(i<=L.length)原创 2021-07-15 22:02:55 · 1432 阅读 · 0 评论 -
举例说明空间复杂度和时间复杂度
空间复杂度例:将一维数组a中的n个数逆序存放在原数组中。【算法1】#include<stdio.h>void main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; int t,i,n=10; for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-i-1]; a[n-i-1]=t; } for(i=0;i<n;i++) {原创 2021-04-17 18:19:26 · 398 阅读 · 1 评论 -
C语言解决百钱买百鸡问题
百钱买百鸡穷举法举例求解“百钱买百鸡”问题:公鸡每只5钱,母鸡每只3钱,小鸡3只1钱。求解思路:设公鸡数为x,母鸡数为y,小鸡数为z,则可以得到下面的整数不定方程组:x+y+z==1005x+3y+z/3==100利用穷举法可以写出下面的算法程序:#include<stdio.h>void main(){ int x,y,z; for(x=0;x<=100;x++) { for(y=0;y<=100;y++)原创 2021-04-15 16:11:57 · 12793 阅读 · 7 评论 -
用递推法和递归法计算斐波那契(Fibonacci)数列的第n项
斐波那契数列递推法编写程序,用递推法计算斐波那契(Fibonacci)数列的第n项。求解思路:斐波那契(Fibonacci)数列为0,1,1,2,3,5,8,13,……,即:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2),当n>1时。用递推法编写的程序为:#include<stdio.h>int Fib(int n){ int f0=0,f1=1,f,i; if(n==0||n==1) { return n;原创 2021-04-15 17:10:48 · 16602 阅读 · 0 评论