◆2.11② 设顺序表l中的数据元素递增有序。
试写一算法,将x插入到l的适当位置上,并保。
持该表的有序性。
要求实现下列函数:
void insertorderlist(sqlist &l, elemtype x)
* 在有序的顺序表 l 中保序插入数据元素 x */
顺序表类型定义如下:
typedef -
2.11② 设顺序表l中的数据元素递增有序。
试写一算法,将x插入到l的适当位置上,并保。
持该表的有序性。
要求实现下列函数:
void insertorderlist(sqlist &l, elemtype x)
* 在有序的顺序表 l 中保序插入数据元素 x */
顺序表类型定义如下:
typedef struct
2.12③ 设a=(a1,…,am)和b=(b1,…,bn)均为有序顺序表,a'和b'分别为a和b中除去最大共同前缀后的子表(例如,a=(x,y,y,z,x,z),b=(x,y,y,z,y,x,x,z),则两者中最大。
的共同前缀为(x,y,y,z), 在两表中除去最大共同前缀后。
的子表分别为a'=(x,z)和b'=(y,x,x,z))。若a'=b'=空表,则a=b;若a'=空表,而b'≠ 空表,或者两者均不为空表,且a'的首元小于b'的首元,则ab。试写一个比。
较a和b大小的算法。(注意:在算法中,不要破坏原表a
和b,也不一定先求得a'和b'才进行比较)。
要求实现下列函数:
char compare(sqlist a, sqlist b);
* 比较顺序表a和b, *
* 返回'<'若a若a=b; *
', 若a>b */
顺序表类型定义如下:
typedef struct
return p;
2.14② 试写一算法在带头结点的单链表结构上实现线性表。
操作length(l)。
实现下列函数:
int length(linklist l);
/ return the length of the linked list
/ whose head node is pointed by 'l'
单链表类型定义如下:
typedef struct lnode
return i;
2.17② 试写一算法,在无头结点的动态单链表上实现。
线性表操作insert(l,i,b),并和在带头结点的动态单。
链表上实现相同操作的算法进行比较。
实现下列函数:
void insert(linklist &l, int i, elemtype b);
单链表类型定义如下:
typedef struct lnode
if(i!=0&&i!=1)
if(i==1)
2.18② 同2.17题要求。试写一算法,实现线性表操作delete(l,i)。
实现下列函数:
void delete(linklist &l, int i);
单链表类型定义如下:
typedef struct lnode{
elemtype data;
struct lnode *next;
lnode, *linklist;
void delete(linklist &l, int i)
linklist p,q;
int j=2;
数据结构第二章作业题
1 已知一个顺序表中的元素按元素值非递减有序排列,编写一个算法删除表中多余的值相同的元素。顺序表的定义如下 typedef structsqlist 函数头定义如下 status desame sq sqlist l 2 编写一个函数,将一个顺序表la 有n个元素,且任何元素均不为0 分拆成两个表,...
数据结构作业第2章
第2章线性表。1.填空。在顺序表中,等概率情况下,插入和删除一个元素平均需移动 个元素,具体移动元素的个数与 和 有关。顺序表中第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的存储地址是 设单链表中指针p 指向结点a,若要删除a的后继结点 假设a存在后继结点 则需修改指针的操作为 单...
数据结构作业第3章
第3章栈 队列。1.填空 1 设有一个空栈,栈顶指针为1000h,现有输入序列为 经过push,push,pop,push,pop,push,push后,输出序列是 栈顶指针为 2 栈通常采用的两种存储结构是 其判定栈空的条件分别是 判定栈满的条件分别是 3 可作为实现递归函数调用的一种数据结构。4...