
数据结构c语言版一道题求解
数据结构c语言版一道题求解。急。要求:以下是顺序表的结构体定义及部分代码,请根据提示信息将代码补充完整,并编写主函数实现以下功能:已知两个非递减有序顺序表LA={1,1,...
数据结构c语言版一道题求解。急。
要求:以下是顺序表的结构体定义及部分代码,请根据提示信息将代码补充完整,并编写主函数实现以下功能:已知两个非递减有序顺序表LA={1,1,3,3,4,6},LB={2,3,5,7,9},将LA和LB的数据合并到新表LC中,仍然保持非递减的顺序关系,并输出表LC的内容。
typedef int DataType;
struct SeqList
{ int MAXNUM; /*顺序表中最大元素的个数*/
int n; /* 存放线性表中元素的个数n≤MAXNUM */
DataType *element; /* element[0],element[1],…,element[n - 1]存放线性表中的元素 */
};
typedef structSeqList *PSeqList;
PSeqList createNullList_seq(intm ) {
/* 创建新的顺序表 */
PSeqList palist= (PSeqList)malloc(sizeof(struct SeqList));
if (palist!=NULL){
palist->element= (DataType*)malloc(sizeof(DataType)*m);
if(palist->element){
palist->MAXNUM=m;
palist->n = 0; /*空表长度为0 */
return (palist);
}
else free (palist);
}
printf(“Outof space!!\n”); /* 存储分配失败*/
return NULL;
}
int isNullList_seq( PSeqList palist ) {
/*判别palist所指顺序表是否为空表。*/
}
int locate_seq( PSeqList palist, DataType x ) {
/* 求x在palist所指顺序表中的下标*/
}
int insertPre_seq( PSeqListpalist, int p, DataType x )
/* 在palist所指顺序表中下标为p的元素之前插入元素x*/
{
}
int deleteP_seq( PSeqList palist, int p )
/* 在palist所指顺序表中删除下标为p的元素*/
{
} 展开
要求:以下是顺序表的结构体定义及部分代码,请根据提示信息将代码补充完整,并编写主函数实现以下功能:已知两个非递减有序顺序表LA={1,1,3,3,4,6},LB={2,3,5,7,9},将LA和LB的数据合并到新表LC中,仍然保持非递减的顺序关系,并输出表LC的内容。
typedef int DataType;
struct SeqList
{ int MAXNUM; /*顺序表中最大元素的个数*/
int n; /* 存放线性表中元素的个数n≤MAXNUM */
DataType *element; /* element[0],element[1],…,element[n - 1]存放线性表中的元素 */
};
typedef structSeqList *PSeqList;
PSeqList createNullList_seq(intm ) {
/* 创建新的顺序表 */
PSeqList palist= (PSeqList)malloc(sizeof(struct SeqList));
if (palist!=NULL){
palist->element= (DataType*)malloc(sizeof(DataType)*m);
if(palist->element){
palist->MAXNUM=m;
palist->n = 0; /*空表长度为0 */
return (palist);
}
else free (palist);
}
printf(“Outof space!!\n”); /* 存储分配失败*/
return NULL;
}
int isNullList_seq( PSeqList palist ) {
/*判别palist所指顺序表是否为空表。*/
}
int locate_seq( PSeqList palist, DataType x ) {
/* 求x在palist所指顺序表中的下标*/
}
int insertPre_seq( PSeqListpalist, int p, DataType x )
/* 在palist所指顺序表中下标为p的元素之前插入元素x*/
{
}
int deleteP_seq( PSeqList palist, int p )
/* 在palist所指顺序表中删除下标为p的元素*/
{
} 展开
3个回答
展开全部
完整代码:
#include <stdio.h>
#include <stdlib.h>
typedef int DataType;
struct SeqList
{ int MAXNUM; /* 顺序表中最大元素的个数*/
int n; /* 存放线性表中元素的个数n≤MAXNUM */
DataType *element; /* element[0],element[1],…,element[n - 1]存放线性表中的元素 */
};
typedef struct SeqList *PSeqList;
PSeqList createNullList_seq(int m ) {
/* 创建新的顺序表 */
PSeqList palist= (PSeqList)malloc(sizeof(struct SeqList));
if (palist!=NULL){
palist->element= (DataType*)malloc(sizeof(DataType)*m);
if(palist->element){
palist->MAXNUM=m;
palist->n = 0; /*空表长度为0 */
return (palist);
}
else free (palist);
}
printf("Outof space!!\n"); /* 存储分配失败*/
return NULL;
}
int isNullList_seq( PSeqList palist ) {
/*判别palist所指顺序表是否为空表。*/
if((palist == NULL) || (palist->n == 0)) {
return 1;
}
return 0;
}
int locate_seq( PSeqList palist, DataType x ) {
/* 求x在palist所指顺序表中的下标*/
int i, ret = -1;
if(palist == NULL) return ret;
ret = palist->n;
for(i=0; i<palist->n; ++i) {
if(palist->element[i] >= x) {
ret = i;
break;
}
}
return ret;
}
int insertPre_seq(PSeqList palist, int p, DataType x)
/* 在palist所指顺序表中下标为p的元素之前插入元素x*/
{
int i,ret = -1;
if(palist == NULL || palist->n >= palist->MAXNUM) return ret;
if(p>=palist->n) {
palist->element[palist->n] = x;
ret = palist->n;
++palist->n;
}
else {
for(i=palist->n; i>p; --i) {
palist->element[i] = palist->element[i-1];
}
palist->element[i] = x;
ret = i;
++palist->n;
}
return ret;
}
int deleteP_seq( PSeqList palist, int p )
/* 在palist所指顺序表中删除下标为p的元素*/
{
int i;
if(isNullList_seq(palist) || p>=palist->n) return -1;
for(i=p-1; i<palist->n-1; ++i) {
palist->element[i] = palist->element[i+1];
}
--palist->n;
return 1;
}
void print(PSeqList palist) {
int i;
if(isNullList_seq(palist)) return;
for(i = 0; i<palist->n; ++i) {
printf("%d\t", palist->element[i]);
}
if(palist->n > 0) printf("\n");
}
/*
LA={1,1,3,3,4,6},LB={2,3,5,7,9},
*/
int main() {
int i;
PSeqList LA, LB,LC;
int a[]={1,1,3,3,4,6}, b[] = {2,3,5,7,9};
LA = createNullList_seq(6);
LB = createNullList_seq(5);
for(i=0;i<6;++i) {
insertPre_seq(LA, i, a[i]);
}
print(LA);
for(i=0;i<5;++i) {
insertPre_seq(LB, i, b[i]);
}
print(LB);
LC = createNullList_seq(LA->MAXNUM + LB->MAXNUM);
for(i=0;i<LA->n;++i) {
insertPre_seq(LC, i, LA->element[i]);
}
for(i=0;i<LB->n;++i) {
int p = locate_seq(LC, LB->element[i]);
insertPre_seq(LC, p, LB->element[i]);
}
print(LC);
return 0;
}

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
正在学,做是做出来的,不过不在这个电脑里存着。不然就复制给你了。
追问
......要下课了。。。。做不出来。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
struct SeqList
{ int MAXNUM; /*顺序表中最大元素的个数*/
int n; /* 存放线性表中元素的个数n≤MAXNUM */
DataType *element; /* element[0],element[1],…,element[n - 1]存放线性表中的元素 */
};
typedef struct SeqList *PSeqList;
PSeqList createNullList_seq(int m ) {
/* 创建新的顺序表 */
PSeqList palist= (PSeqList)malloc(sizeof(struct SeqList));
if (palist!=NULL){
palist->element= (DataType*)malloc(sizeof(DataType)*m);
if(palist->element){
palist->MAXNUM=m;
palist->n = 0; /*空表长度为0 */
return (palist);
}
else free(palist);
}
printf(“Out of space!!\n”); /* 存储分配失败*/
return NULL;
}
int isNullList_seq( PSeqList palist ) {
/*判别palist所指顺序表是否为空表。*/
return palist->n==0?1:0;
}
int locate_seq( PSeqList palist, DataType x ) {
/* 求x在palist所指顺序表中的下标*/
for(int i=0;i<n;i++)
{
if(palist->element[i]==x){
return i;
}
}
return -1;
}
int insertPre_seq( PSeqListpalist, int p, DataType x )
/* 在palist所指顺序表中下标为p的元素之前插入元素x*/
{
for(int i=n-1;i>q;i--)
{
palist->element[i+1]=palist->element[i];
}
palist->element[q]=x;
return 1;
}
int deleteP_seq( PSeqList palist, int p )
/* 在palist所指顺序表中删除下标为p的元素*/
{
for(int i=q;i<n;i++)
{
palist->element[i]=palist->element[i+1];
}
return 1;
}
{ int MAXNUM; /*顺序表中最大元素的个数*/
int n; /* 存放线性表中元素的个数n≤MAXNUM */
DataType *element; /* element[0],element[1],…,element[n - 1]存放线性表中的元素 */
};
typedef struct SeqList *PSeqList;
PSeqList createNullList_seq(int m ) {
/* 创建新的顺序表 */
PSeqList palist= (PSeqList)malloc(sizeof(struct SeqList));
if (palist!=NULL){
palist->element= (DataType*)malloc(sizeof(DataType)*m);
if(palist->element){
palist->MAXNUM=m;
palist->n = 0; /*空表长度为0 */
return (palist);
}
else free(palist);
}
printf(“Out of space!!\n”); /* 存储分配失败*/
return NULL;
}
int isNullList_seq( PSeqList palist ) {
/*判别palist所指顺序表是否为空表。*/
return palist->n==0?1:0;
}
int locate_seq( PSeqList palist, DataType x ) {
/* 求x在palist所指顺序表中的下标*/
for(int i=0;i<n;i++)
{
if(palist->element[i]==x){
return i;
}
}
return -1;
}
int insertPre_seq( PSeqListpalist, int p, DataType x )
/* 在palist所指顺序表中下标为p的元素之前插入元素x*/
{
for(int i=n-1;i>q;i--)
{
palist->element[i+1]=palist->element[i];
}
palist->element[q]=x;
return 1;
}
int deleteP_seq( PSeqList palist, int p )
/* 在palist所指顺序表中删除下标为p的元素*/
{
for(int i=q;i<n;i++)
{
palist->element[i]=palist->element[i+1];
}
return 1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询