Description
已知线性表中元素为整数,且按照升序排列。编写算法实现在线性表中查找值为x的元素,如果查找成功,返回1;否则,返回0,并且把x插入到正确的位置,使线性表仍按升序排列。
依次输出调用查找插入算法后的线性表中的元素。
提示:存储结构采用代表头结点的循环单链表,结点结构如下:
typedef struct Node
{
int data;
struct Node *next;
}LNode,*LinkList;
要求:
(1)编写函数建立循环单链表CreateLinkList(int n),函数返回值类型为LinkList。
LinkList CreateLinkList(int n)
{
/*按照升序输入n个整数,建立带表头结点的循环单链表*/
}
(2) 编写查找函数QueryLinkList(LinkList *L,int x)实现查找并插入功能,函数返回值类型int。
int QueryLinkList(LinkList *L,int x)
{
/*查找值为x的元素,若查找成功返回1,否则返回0,并把x插入到相应的位置。*/
}
(3)编写函数Display(LinkList L),输出线性表中的元素。
(4)main函数调用QueryLinkList()函数,输出查找结果,然后调用Display函数依次输出线性表中的元素。
Input
输入元素个数n
依次输入n个升序排列的整数
输入带查找的元素值x
Output
输出查找结果1或者0
依次输出线性表中的元素值
Sample Input
sample 1:
6
2 5 8 10 12 16
10
sample2:
6
2 5 8 10 12 16
9
Sample Output
sample 1:
1
2 5 8 10 12 16
sample2:
0
2 5 8 9 10 12 16