int insert(int a[], int value)
{
int i;
for (i = 0; i < Count; i++)
{
if (value < a[i])
break;
if (value == a[i])
return -1;
}
for (int j = Count; j > i; j--)
a[j] = a[j - 1];
a[i] = value;
Count++;
return 0;
}
int del(int a[], int value)
{
int i;
for (i = 0; i < Count; i++)
{
if (value == a[i])
break;
}
if (i == Count)
return -1;
for (int j = i; j < Count - 1; j++)
a[j] = a[j + 1];
Count--;
return 0;
}
int modify(int a[], int value1, int value2)
{
if (del(a, value1) == -1)
return -1;
if (insert(a, value2) == -1)
return -1;
return 0;
}
int query(int a[], int value)
{
int mid, left = 0, right = Count - 1;
while (left <= right)
{
mid = (left + right) / 2;
if (a[mid] < value)
left = mid + 1;
else if (a[mid] > value)
right = mid - 1;
else
return mid;
}
return -1;
}
习题10-11 有序表的增删改查操作
最新推荐文章于 2023-10-19 17:54:47 发布