已知长度为 n 的线性表 A 中的元素是整数, 写算法求线性表中值大于 item 的元素个数。分两种情况编写函数: (1) 线性表采用顺序存储; (2) 线性表采用单链表存储。
时间: 2024-05-02 12:22:25 浏览: 78
(1) 线性表采用顺序存储:
算法步骤如下:
1. 初始化计数器 count=0;
2. 遍历线性表 A,对于每一个元素,若其值大于 item,则 count 加一;
3. 遍历结束后,返回 count。
C++ 代码如下:
```C++
int countGreaterThanItem(vector<int>& A, int item) {
int count = 0;
for(int i=0; i<A.size(); i++) {
if(A[i] > item) {
count++;
}
}
return count;
}
```
(2) 线性表采用单链表存储:
算法步骤如下:
1. 初始化计数器 count=0;
2. 遍历单链表 A,对于每一个元素,若其值大于 item,则 count 加一;
3. 遍历结束后,返回 count。
C++ 代码如下:
```C++
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
int countGreaterThanItem(ListNode* head, int item) {
int count = 0;
ListNode* p = head;
while(p != NULL) {
if(p->val > item) {
count++;
}
p = p->next;
}
return count;
}
```
阅读全文