已知长度为 n 的线性表 A 中的元素是整数, 写算法求线性表中值大于 item 的元素个数。分两种情况编写函数: (1) 线性表采用顺序存储; (2) 线性表采用单链表存储。
时间: 2024-05-08 17:19:49 浏览: 116
已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一高效的算法,删除表中所有值相同的多余元素(使得操作后的线性表中所有元素的值均不相同)
给出两种算法:
1. 线性表采用顺序存储
```
int countGreater(int *A, int n, int item) {
int count = 0;
for (int i = 0; i < n; ++i) {
if (A[i] > item) {
++count;
}
}
return count;
}
```
2. 线性表采用单链表存储
```
int countGreater(List *list, int item) {
int count = 0;
ListNode *cur = list->head;
while (cur != NULL) {
if (cur->val > item) {
++count;
}
cur = cur->next;
}
return count;
}
```
注:`List` 表示链表类型,`ListNode` 为链表节点类型,`val` 为节点值,`next` 为指向下一节点的指针。
阅读全文