网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月04日漏签0天
数据结构吧 关注:104,523贴子:883,657
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 4回复贴,共1页
<<返回数据结构吧
>0< 加载中...

求题解

  • 只看楼主
  • 收藏

  • 回复
  • 夜L又夜
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
明天就要交作业了 还没弄出来 那位高手帮帮忙把程序弄出来 我要源代码 在线等啊
题目一:顺序表的基本操作
[问题描述]
实现顺序表的建立、求长度,取元素、修改元素、插入、删除等顺序表的基本操作。
[基本要求]
(1)依次从键盘读入数据,建立带头结点的顺序表;
    (2)输出顺序表中的数据元素
(3)求顺序表的长度;
(4)根据指定条件能够取元素和修改元素;
(5)实现在指定位置插入和删除元素的功能。
(6)根据算法,将两个有序的顺序表合并成一个有序顺序表。 
题目二:单链表的基本操作(*)
[问题描述]
实现带头结点的单链表的建立、求长度,取元素、修改元素、插入、删除等单链表的基本操作。
[基本要求]
(1)依次从键盘读入数据,建立带头结点的单链表;
    (2)输出单链表中的数据元素
(3)求单链表的长度;
(4)根据指定条件能够取元素和修改元素;
(5)实现在指定位置插入和删除元素的功能。
(6)根据算法,将两个有序的单链表合并成一个有序单链表。
三.要求分析
题目一:顺序表的基本操作
利用InitList()函数实现构建一个空的线性表的功能,利用for语句通过从键盘输入顺序表的长度并为两个有序顺序表La、Lb赋值,然后利用MergeList()函数把顺序表La、Lb合并成一个有序顺序表Lc,并利用for语句输出。
题目二:单链表的基本操作
分别创建新结点构建两个有序单链表La、Lb,利用for语句通过从键盘输入单链表的数据数目并为其赋值,利用MergeList_L()函数把顺序表La、Lb合并成一个有序单链表Lc,并利用for语句输出。



  • 夜L又夜
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是题目一 别人的我不能交这个(老师发现就没分了) 帮忙改下也行 谢过!!!
#include<iostream>
using namespace std;
typedef struct
{
int *elem;
int length;
}SqList;
void InitList(SqList &L);
void MergeList(SqList La,SqList Lb,SqList &Lc);
void InitList(SqList &L)
{
L.elem=new int[L.length];
}
void MergeList(SqList La,SqList Lb,SqList &Lc)
{
Lc.length=La.length+Lb.length+1;
InitList(Lc);
int i=0,j=0,k=0;
while((i<=La.length) && (j<=Lb.length))
{
if(La.elem[i]<=Lb.elem[j])
{
Lc.elem[k++]=La.elem[i];
i++;
}
else
{
Lc.elem[k++]=Lb.elem[j];
j++;
}
}
k--;
while(i<=La.length)
{
Lc.elem[k++]=La.elem[i];
i++;
}
while(j<=Lb.length)
{
Lc.elem[k++]=Lb.elem[j];
j++;
}
}
void main()
{
int i;
SqList La,Lb,Lc;
cout<<"请输入您所要创建的线性表La的长度:"<<endl;
cin>>La.length;
InitList(La);
cout<<"请为您所要创建的线性表La赋值:"<<endl;
for(i=0;i<La.length;i++)
cin>>La.elem[i];
cout<<"请输入您所要创建的线性表Lb的长度:"<<endl;
cin>>Lb.length;
InitList(Lb);
cout<<"请为您所要创建的线性表Lb赋值:"<<endl;
for(i=0;i<Lb.length;i++)
cin>>Lb.elem[i];
MergeList(La,Lb,Lc);
cout<<"操作后的线性表La:"<<endl;
for(i=0;i<La.length;i++)
cout<<La.elem[i]<<"\t";
cout<<endl;
cout<<"操作后的线性表Lb:"<<endl;
for(i=0;i<Lb.length;i++)
cout<<Lb.elem[i]<<"\t";
cout<<endl;
cout<<"操作后的线性表Lc:"<<endl;
for(i=0;i<Lc.length-1;i++)
cout<<Lc.elem[i]<<"\t";
cout<<endl;
}


2025-09-04 17:59:44
广告
不感兴趣
开通SVIP免广告
  • 夜L又夜
  • 单链表
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是题目2 帮忙改一下啊 别看起来太一样
#include <iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc)
{
LinkList pa,pb,pc;
pa=La->next;
pb=Lb->next;
pc=Lc=La;
while(pa && pb)
{
if(pa->data <= pb->data)
{
pc->next=pa;pc=pa;pa=pa->next;
}
else
{
pc->next=pb;pc=pb;pb=pb->next;
}
}
pc->next=pa?pa:pb;
delete Lb;
}
void main()
{
int m,n,i;
LinkList p,q1,q2,La,Lb,Lc;
La=new LNode;
Lb=new LNode;
La->next=NULL;
Lb->next=NULL;
cout<<"请输入第一个单链表La的数据数目:"<<endl;
cin>>m;
cout<<"请为第一个单链表La赋值:"<<endl;
q1=La;
for(i=1;i<=m;i++)
{
p=new LNode;
cin>>p->data;
p->next=NULL;
q1->next=p;
q1=p;
}
cout<<"请输入第二个单链表Lb的数据数目:"<<endl;
cin>>n;
cout<<"请为第二个单链表Lb赋值:"<<endl;
q2=Lb;
for(i=1;i<=n;i++)
{
p=new LNode;
cin>>p->data;
p->next=NULL;
q2->next=p;
q2=p;
}
MergeList_L(La,Lb,Lc);
cout<<"合并后单链表Lc中的数据顺序为:"<<endl;
LinkList pre;
pre=Lc->next;
for(i=1;i<=m+n;i++)
{
cout<<pre->data<<" ";
pre=pre->next;
}
cout<<endl;
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回数据结构吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示