C语言 数据结构 线性表的顺序存储及其操作实验
C语言 数据结构 线性表的顺序存储及其操作实验
C语言 数据结构 线性表的顺序存储及其操作实验
.顺序表的基本操作实践。
1.顺序表的基本操作实践。 实现顺序表的建立、输入、输出、查找、插入、删除等功能,每个功能用一个函数实现。
(1)建立4个元素的顺序表list[]={3,2,4,5},实现顺序表建立的基本操作。
(2)在list[]={3,2,4,5}的元素4和5之间插入一个元素9,实现顺序表插入的基本操作。
(3)在list[]={3,3,4,9,5}中删除指定位置(i=3)上的元素4,实现顺序表的删除的基本操作。
2. 基本算法实践。 若一个线性表采用顺序表L存储,其中所有元素为整数。设计一个时间空间尽可能高效的算法,将所有元素分成两部分,其中前部分元素均小于等于整数k1,后部分均大于等于整数k2。例如:{6,4,10,7,9,2,20,1,3,30},k1=5,k2=8时候,一种结果为([3,4,1,2],6,7,[20,10,9,30])。(其实这题应该可以直接将顺序表排序也可达到题目要求,但这就与k1,k2无任何关系,与出题初衷不符(也可能是我想错了!!!))
3.有序顺序表基本算法实践。假设表示集合的顺序表是一个有序顺序表,设计一个高效的算法实现集合求差集运算,即C=A-B。例如A={1,3,4,5,6,7},B={3,5,6,8,9,11},输出A-B的结果={1,4,7}
—————————————————————————
完整代码
#include
#include
#define MaxSize 50
typedef int ElemType;
typedef struct
{ElemType data[MaxSize];int length;
}Sqlist;void CreateList1(Sqlist *&L,ElemType a[],int n)//第一题,建立线性表并将题中数据元素输入
{int i=0,k=0;L = (Sqlist *)malloc(sizeof(Sqlist));while(i<n){L->data[k]=a[i];k++;i++;}L->length = k;
}void CreateList(Sqlist *&L)//建立线性表并输入数据元素
{L = (Sqlist *)malloc(sizeof(Sqlist));printf("请规定线性表长度");scanf("%d",&L->length);for(int q=0;q<L->length;q++){//将值赋给新创建的顺序表printf("请输入第%d个元素",q+1);scanf("%d",&L->data[
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
