欢迎来到天天文库
浏览记录
ID:56125246
大小:158.00 KB
页数:14页
时间:2020-06-20
《2017华工数据结构作业(已做).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2017华工数据结构作业一、程序阅读填空1.在顺序表中第i个位置插入新元素xtemplateintSeqList::Insert(Type&x,inti){if(i<0
2、
3、i>last+1
4、
5、last==MaxSize-1)return0;//插入不成功else{last++;for(________intj=MaxSize-1________________;j>i;j--)___________data[j+1]=data[j]__________________;data[i]=x;return1;//插入成功}} 1.
6、直接选择排序的算法templatevoidSelectSort(datalist&list){for(inti=0;iviodSelectExchange(datalist&list,constinti){intk=i;for(intj=i+1;j7、y()voidList::MakeEmpty(){ListNode*q;while(first→link!=NULL){ ____________q=first->link______________; _________fitst-8、>link=q->link_________________;//将表头结点后第一个结点从链中摘下deleteq;//释放它}last=first;//修改表尾指针} 4、基于有序顺序表的折半搜索递归算法(Element为有序顺序表)templateintorderedList::BinarySearch(constType&x,constintlow,constinthigh)const{intmid=-1;if(low<=high){ ________mid=(low+high)/2__________________;if9、(Element[mid].getKey()x)mid=BinarySearch(x,low,mid-1);}returnmid;} 5、在顺序表中第i个位置插入新元素x。intinsert(sqlist*L,datatypex,inti){intj;if(L->n==maxsize){cout<<”表满,不能插入!(上溢)”;return–1;}if(i<010、11、i>=maxsi12、ze){cout<<”非法插入位置!”;return0;}for(j=L->n;j>=i;j--)L->data[j]=L->data[j-1];//节点后移L->data[j]=x;//插入xL->n++;//修改表长Return1;//插入成功} 6、直接选择排序的算法voidSelectSort(listR,intn){inti,j,k;for(i=1;i<=n-1;i++){//n-1趟排序k=i;for(j=i+1;j<=n,j++)//在当前无序区中找键值最小的记录R[k]if(R[j].key13、0]=R[i];R[i]=R[k];R[k]=R[0];}}} 二、简答题1.线性表可用顺序表或是链表存储,此两种存储表示各有哪些优缺点?答:1)顺序存储表示是将数据元素存放于一个联系的存储空间中,实现顺序存取或(按下标)直接存取。顺序存储的优缺点有:(1)它的存储效率高,存取速度快。但它的空间大小一经定义,在程序整个运行期间不会发生改变,因此,不易扩充。(2)由于在插入或删除是,为了保持原有次序(没有规定元素进栈顺序),平均需要移动一半(或近一半)元素,修改效率不高。2)链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链14、接次序实现的。链表存储的
7、y()voidList::MakeEmpty(){ListNode*q;while(first→link!=NULL){ ____________q=first->link______________; _________fitst-
8、>link=q->link_________________;//将表头结点后第一个结点从链中摘下deleteq;//释放它}last=first;//修改表尾指针} 4、基于有序顺序表的折半搜索递归算法(Element为有序顺序表)templateintorderedList::BinarySearch(constType&x,constintlow,constinthigh)const{intmid=-1;if(low<=high){ ________mid=(low+high)/2__________________;if
9、(Element[mid].getKey()x)mid=BinarySearch(x,low,mid-1);}returnmid;} 5、在顺序表中第i个位置插入新元素x。intinsert(sqlist*L,datatypex,inti){intj;if(L->n==maxsize){cout<<”表满,不能插入!(上溢)”;return–1;}if(i<0
10、
11、i>=maxsi
12、ze){cout<<”非法插入位置!”;return0;}for(j=L->n;j>=i;j--)L->data[j]=L->data[j-1];//节点后移L->data[j]=x;//插入xL->n++;//修改表长Return1;//插入成功} 6、直接选择排序的算法voidSelectSort(listR,intn){inti,j,k;for(i=1;i<=n-1;i++){//n-1趟排序k=i;for(j=i+1;j<=n,j++)//在当前无序区中找键值最小的记录R[k]if(R[j].key13、0]=R[i];R[i]=R[k];R[k]=R[0];}}} 二、简答题1.线性表可用顺序表或是链表存储,此两种存储表示各有哪些优缺点?答:1)顺序存储表示是将数据元素存放于一个联系的存储空间中,实现顺序存取或(按下标)直接存取。顺序存储的优缺点有:(1)它的存储效率高,存取速度快。但它的空间大小一经定义,在程序整个运行期间不会发生改变,因此,不易扩充。(2)由于在插入或删除是,为了保持原有次序(没有规定元素进栈顺序),平均需要移动一半(或近一半)元素,修改效率不高。2)链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链14、接次序实现的。链表存储的
13、0]=R[i];R[i]=R[k];R[k]=R[0];}}} 二、简答题1.线性表可用顺序表或是链表存储,此两种存储表示各有哪些优缺点?答:1)顺序存储表示是将数据元素存放于一个联系的存储空间中,实现顺序存取或(按下标)直接存取。顺序存储的优缺点有:(1)它的存储效率高,存取速度快。但它的空间大小一经定义,在程序整个运行期间不会发生改变,因此,不易扩充。(2)由于在插入或删除是,为了保持原有次序(没有规定元素进栈顺序),平均需要移动一半(或近一半)元素,修改效率不高。2)链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链
14、接次序实现的。链表存储的
此文档下载收益归作者所有