数据结构
未读
简单选择排序(单链表)
思想:将原链表拆出去,定义一个新的头结点,接到原链表头部,将原链表头结点后接NULL,然后从链表中找到一个最大的节点(遍历链表过程中,再定义一个指向最大值结点的指针,一个最大值结点的前驱结点的指针,便于将其拆下来),将其使用头插法插入到原头结点后面。 //头插法
void insert(LNode
数据结构
未读
有序单链表插入新结点
void insert(LNode *head, LNode *q){
if(q==NULL) return;
LNode *p=head->next;
LNode *pre=head;
while(p!=NULL&&p->data<=q->data){
p=p->next;
p
数据结构
未读
顺序查找&&字符串模式匹配
//链表节点
struct LNode{
char data;
struct LNode *next;
};
int match(struct LNode *A, struct LNode *B){
struct LNode *p=A->next;
int index=1;
while(p
数据结构
未读
折半查找(仅有序顺序表)
有一个长度为n 的 int 型升序数组A[n]。请编写一个函数来查找数组中值为k的元素第一次出现的数组下标。如果没有找到,返回-1。函数原型为:int search(int A[], int n, int k) 例如: 若 A[ ] = {1,2,3,4,5,5,6},k=2,则函数返回 1; 若
数据结构
未读
数据结构——快速排序
递归➡乱序数组 关键思想:划分➡参数包含(数组指针,范围) int huafen(int A[],int L,int R){
int mid = A[L];
while(L<R){
while(A[R]>=mid && L<R) R--;
A[L]=A[R];
while