数据结构考试题参考答案1、设顺序表 L 中的数据元素递增有序
试写一算法,将数据元素 x 插入到顺序表 L 的适当位置,以保持该表的有序性
解:存储结构为:typedef struct SeqList{ DataType *data; int MaxLen; int len;}SeqList;算法如下:void insertLx(SeqList &L, DataType x){ if(L
len==L
maxlen) return; int i=L
len-1;while(i〉=0 && x〈L
data[i]){ L
data[i+1]=L
data[i]; i=i—1;}L
data[i+1]=x; L
len++;}2、试写一个算法,在带头结点的单链表 L 的元素 x 前插入一个结点 y
解:存储结构如下:typedef struct Lnode{ElemType data; struct Lnode *next;}Lnode, *LinkList;算法如下:void insert_y_before_x(LinkList L, ElemType x, ElemType y){ Lnode *q, *p=L; while(p—>next && p—〉next—>data
=x) p=p—〉next; //找 x 的前驱结点 p;if(
p—>next) return; // 若不存在结点 x,则返回;q=new Lnode;q-〉data=y; q—>next=p—〉next; p—〉next=q;}3、试写一个算法,统计带头指针的单链表 L 的元素个数
解:存储结构如下:typedef struct Lnode{ElemType data; struct Lnode *next;}Lnode, *LinkList;算法如下:int length(LinkList L)