- 统计出单链表中结点的值等于给定值X的结点数。
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
int count(LinkList l,int x){
int num = 0; //用于记录链表中x的个数
LNode *p = l->next; //初始化p指针
while(p!=NULL){ //循环遍历链表
if(p->data==x)num++; //如果找到符合条件的结点,计数器num+1
p=p->next; //保证指针循环后移
}
return num; //返回结果
}
2.设有一组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于Ki,右半部分的每个关键字均大于等于Ki。
void qs(int arr[],int i){
int low = 0,high = 9,key = arr[i];
int temp = arr[low];
arr[low] = arr[i];
arr[i] = temp;
while(low<high){
while(low<high&&arr[high]>key)high--;
arr[low] = arr[high];
while(low<high&&arr[low]<key)low++;
arr[high] = arr[low];
}
arr[low] = key;
}