2.5模拟链表

来源:互联网 发布:苹果手机群发短信软件 编辑:程序博客网 时间:2024/06/05 19:33
#include<iostream>#define n 9using namespace std;int main(){int data[101],right[101];int i,t,len;//读入已有的数cout<<"依次读入已有的数"<<endl;for(i=1;i<=n;i++){cin>>data[i];}len=n;//初始化数组right for(i=1;i<=n;i++){if(i!=n){right[i]=i+1;}else{right[i]=0;}} //直接在数组data的末尾增加一个数len++;cout<<"请输入要在原数组中增加的数:"; cin>>data[len];//从链表的头部开始遍历t=1;while(t!=0){if(data[right[t]]>data[len]){//如果当前结点下一个结点的值大于带插入数,将数插入到中间right[len]=right[t];//新插入数的下一个结点编号等于当前结点的下一个结点编号 right[t]=len;//当前结点的下一个结点编号就是新插入数的编号break;//插入完成跳出循环 }t=right[t]; } //输出链表中所有的数t=1;while(t!=0){cout<<data[t]<<" ";t=right[t];} return 0;}/*模拟链表链表的每一个结点只有两个部分:用一个数组data来存储序列中的每一个数,再用一个数组right来存储序列中每一个数右边的数。第一个整型数组data是用来存放序列中具体数字的,另外一个整型数组right是用来存放当前序列中每一个元素右边的元素在数组data中位置的。例如:right[1]=2,就表示当前序列中1号元素右边的元素存放在data[2]中;  right[9]=0,就表示当前序列中9号元素右边没有元素;*/

0 0
原创粉丝点击