- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构试题大题编程及参考答案
数据结构考试题参考答案
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 xL.data[i])
{ L.data[i+1]=L.data[i]; i=i-1;}
L.data[i+1]=x; L.len++;
} 2、试写一个算法,在带头结点的单链表
解:存储结构如下:
typedef struct Lnode
{ElemType data;
struct Lnode *next;
}Lnode, *LinkList;
算法如下:
L 的元素 x 前插入一个结点 y。
void insert_y_before_x(LinkList L, ElemType x, ElemType y)
{ Lnode *q, *p=L;
while(p-next p-next-data!=x)
if(!p-next) return; // 若不存在结点
q=new Lnode;
p=p-next; //找 x 的前驱结点 p;
x,则返回;
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)
{ int len=0;
Lnode *p=L;
while(p) { len++; p=p-next; }
1 / 6
p,然后插入。
p,然后插入。 x 的结点。
return len;
}
注:如果单链表是带头结点的,则算法如下:
int length(LinkList L)
{ int len=0;
Lnode *p=L-next;;
while(p) { len++; p=p-next; }
return len;
}
4、试写一个算法,在带头结点的单链表 L 的第 k 个结点后插入一个结点 x。 解:
存储结构如下:
typedef struct Lnode
{ElemType data;
struct Lnode *next;
}Lnode, *LinkList;
算法如下:
void insert_after_k( LinkList L, int k, ElemType x)
{ if(k0) return;
Lnode *q, *p=L;
int i=0;
while(p ik) {i++; p=p-next; } //找到第 k 个结点 p;
if(!p) return; //若不存在第 k 个结点,则返回;
q=new Lnode; q-data=x; q-next=p-next; p-next=q;
}
注:如果是在 L 的第 k 个结点前插入一个结点,则找第 k-1 个结点
5、试写一个算法,在带头结点的单链表L中删除所有的数据元素为
解:
存储结构如下:
typedef struct Lnode
{ElemType data;
struct Lnode *next;
}Lnode, *LinkList;
算法如下:
void Delete_all_x(LinkList L, Elemtype x)
{ Lnode *p, *q; p=L;
while(p)
{ if(p-next p-next-data==x)
{q=p-next; p-next=q-next; delet
文档评论(0)