早教吧 育儿知识 作业答案 考试题库 百科 知识分享

哪位老大帮忙做下着几个题数据结构的。。。一、顺序表的操作(1)插入元素操作:将新元素x插入到顺序表a中第i个位置。(2)删除元素操作:删除顺序表a中第i个元素。二、单链表的操

题目详情
哪位老大帮忙做下着几个题数据结构的。。。
一、 顺序表的操作
(1)插入元素操作:将新元素x插入到顺序表a中第i个位置。
(2)删除元素操作:删除顺序表a中第i个元素。
二、单链表的操作
(1)创建一个带头结点的单链表;
(2)插入元素操作:将新元素x插入到单链表中第i个元素之后;
(3)删除元素操作:删除单链表中值为x的元素;
三、在顺序栈上实现将非负十进制数转换成二进制数。
四、在顺序表中采用顺序查找算法和折半查找算法寻找关键字X在顺序表中的位置。
五、将无序数列使用直接插入排序算法和快速排序算法将其排成递增有序数列
▼优质解答
答案和解析
#include
#define MAXSIZE 100
typedef int datatype;

struct sqlist
{
datatype data[MAXSIZE];
int last;
};
sqlist list1;

void create(); //新建一个顺序表
void show(); //显示新建的顺序表内容
int locate(datatype x);//查找有无某一给定的数值
void insert(datatype x,int i);//将值为x的新结点插入到顺序表中的第i个结点的位置上
void deleter(int i);//删除顺序表中的第i个结点
void main()
{
create(); //新建一个顺序表
show(); //显示你新建的顺序表内容
datatype x;
cout< cin>>x;
int i=locate(x);//查找数值为x的元素
if(i==1)cout< cout<>x>>i;
insert(x,i); //将值为x的新结点插入到顺序表中的第i个结点的位置上
show(); //显示顺序表的内容
cout<>i;
deleter(i); //删除顺序表中的第i个结点
show(); //显示顺序表的内容
}
void show() //显示顺序表的内容
{
cout< for(int i=0;i<=list1.last;i++)
cout< cout<}
void create() //建立一个顺序表
{
for(int i=0;i<63;i++)
list1.data[i]=i+1;
list1.last=i-1;
}
int locate(datatype x)//从已知的顺序表中查找有无某一给定的数值
{
for(int i=0;i<=list1.last;i++)
if(list1.data[i]==x)
return 1;
return 0;
}
void insert(datatype x,int i)//将值为x的新结点插入到顺序表中的第i个结点的位置上
{
if(list1.last0&&i<=list1.last+2))
{for(int j=list1.last+1;j>i-1;j--)
list1.data[j]=list1.data[j-1];
list1.data[j]=x;
list1.last++;
}
}
void deleter(int i)//将顺序表中的第i个结点删除掉
{
if(list1.last>-1&&(i>=1&&i<=list1.last+1))
{
for(int j=i;j<=list1.last-1;j++)
list1.data[j-1]=list1.data[j];
list1.last--;
}
}
做了一个,其他的也好做的!你慢慢体会体会!