这是一个数据结构中的问题: 10

已知一个顺序表中的各结点值是从小到大有序的,设计一个算法,插入一个值为x的结点,使顺序表中的结点仍然是从小到大有序。最是能写出程序!!谢谢了!1... 已知一个顺序表中的各结点值是从小到大有序的,设计一个算法,插入一个值为x的结点,使顺序表中的结点仍然是从小到大有序。
最是能写出程序!!谢谢了!1
展开
 我来答
脚丫吃烤皮4031
2007-10-11 · TA获得超过117个赞
知道答主
回答量:343
采纳率:100%
帮助的人:0
展开全部
用X和表中每个元素比较,X比这个元素大就PASS,X比这个元素小就插到这个元素前面~
clover39
2007-10-11
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
用一个循环语句,将X结点与已知顺序表的各结点逐一的比较
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zwh202342
2007-10-12 · TA获得超过971个赞
知道大有可为答主
回答量:1417
采纳率:0%
帮助的人:1366万
展开全部
一个典型的链表结构,多一个索引就是有序链表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冷漫人
2007-10-12 · TA获得超过100个赞
知道答主
回答量:78
采纳率:0%
帮助的人:0
展开全部
以后应该自己动手写写...

#include <iostream.h>
#include <stdlib.h>

struct nlist{
int *list;
int size;
int maxsize;
};

//初始化
void initlist(nlist &l){
l.maxsize=20;
l.list=new int[l.maxsize];
l.size=0;
}

//清空
void clearlist(nlist &l){
if(l.list!=NULL) {
delete []l.list;
l.list=NULL;
}
l.maxsize=0;
l.size=0;
}

//插入
bool insertlist(nlist &l,int x,int pos){
int i;
if(pos<-1) return false;
if(pos==-1) pos=l.size+1;
else if(pos==0)
{ for(i=0;i<l.size;i++)
if(x<l.list[i])break; pos=i+1;}
for(int j=l.size-1;j>=pos-1;j--)
l.list[j+1]=l.list[j];
l.list[pos-1]=x;
l.size++;
return true;
}

//遍历线性表
void traverlist(nlist &l){
for (int i=0;i<l.size;i++)
cout<<l.list[i]<<" ";
cout<<endl;
}

//主函数
void main(){
int a[8]={3,22,5,66,7,88,55,10};
int i;
int x;
nlist t;
initlist(t);

for(i=0;i<8;i++)
insertlist(t,a[i],0); //i+1 表示插入位置
//1 表示插入第一位,则表为反序
//0 则有序(由小到大)排序
traverlist(t);
//插入开始
cout<<"输入要插入的值"<<endl;
cin>>x;
if (insertlist(t,x,0))
cout<<"插入成功"<<endl;
traverlist(t);
//插入结束
clearlist(t);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式