题目一
题目二
for(i=0; i
*(out++) = *(final++);
*out=’\0′;
LONDE *link_reverse(LNODE *head) { LNODE *pb,*pt; if(head == NULL) return head; pb = head->next; head->next=NULL; while(pb != NULL) { pt = pb->next; pb->next = head; head = pb; pb = pt; } return head; }
void quick_sort(int num,int start_num,int end_num) { if(start_num < end_num) { int i = start_num; int j = end_num; int temp = num[start_num]; while(i < j) { while(i < j && num[j] < temp) j--; if(i < j) num[i++] = num[j];//把小于基准值放在左边 while(i < j && num[i] >= temp) i++; if(i < j) num[j--] = num[i];//把大于基准值放在右边 } num[i] = temp; quick_sort(num,start_num,i-1); quick_sort(num,i+1,end_num); } }
int binary_search(int array[],int value,int size) { int low=0,high=size-1,mid; while(low<=high) //只要高低不碰头就继续二分查找 { mid=(low+high)/2; if(value==array[mid]) //比较是不是与中间元素相等 return mid; else if(value > array[mid]) //每查找一次,就判断一次所要查找变量所在范围,并继续二分 low=mid; //如果大小中间值,下限移到中间的后一个位,上限不变,往高方向二分 else high=mid; //上限移到中间的前一个位,往低方向二分 } return -1; } /*双向循环链表插入函数*/ TYPE *insert_link(TYPE *head,TYPE *p_in) { TYPE *p_mov = head,p_front = head; if(head == NULL) { head = p_in; p_in->next = head; p_perior = head; } else { while((p_in->[] > p_mov->[]) && (p_mov->next != head)) { p_front = p_mov; p_mov = p_mov->next; } if(p_in->[] <= p_mov->[]) { if(head == p_mov) { p_in->prior = head->prior; head->prior->next = p_in; p_in->next = p_mov; p_mov->prior = p_in; head = p_in; } else { pf->next = p_in; p_in->prior = p_front; p_in->next = p_mov; p_mov->prior = p_in; } } else { p_mov->next = p_in; p_in->prior = p_mov; p_in->next = head; head->prior = p_in; } } return head; } /*双向链表删除函数*/ TYPE *delete_link(TYPE *head,int num) { TYPE *p_mov = head,p_front = head; if(head == NULL) printf("Not link\n"); while((p_mov->num != num) && (p_mov->next != head)) { p_front = p_mov; p_mov = p_mov->next; } if(p_mov->num == num) { if(p_mov == head) { if(p_mov->next == head && p_mov->prior == head) { free(pb); head =NULL; return head; } head->next->prior = head->prior; head->prior->next = head->next; head = head->next; } else { p_front->next = p_mov->next; p_mov->next->prior = p_front; } free(p_mov); printf("The node is delete\n"); } else { printf("The node not been found\n"); } return head; }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216905.html原文链接:https://javaforall.net
