已知长度为 n 的线性表 A 中的元素是整数, 写算法求线性表中值大于 item 的元素个数。分两种情况编写函数: (1) 线性表采用顺序存储; (2) 线性表采用单链表存储。代码
时间: 2024-05-08 10:18:43 浏览: 58
已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一高效的算法,删除表中所有值相同的多余元素(使得操作后的线性表中所有元素的值均不相同)
(1) 线性表采用顺序存储:
```
int CountGreaterThanItem(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 CountGreaterThanItem(ListNode* head, int item){
int count = 0;
while(head != nullptr){
if(head->val > item){
count++;
}
head = head->next;
}
return count;
}
```
注意:这里的ListNode是一个结构体或类,表示链表节点,包含一个int类型的val表示节点的值,和一个指向下一个节点的指针next。
阅读全文