|
|
|
@ -79,3 +79,36 @@ int binarySearch(SeqList L, int Key) {
|
|
|
|
|
18 2 6 10 12 [16* 16] 18 [20] 28 30
|
|
|
|
|
16* 2 6 10 12 16*[16] 18 20 28 30
|
|
|
|
|
左子序列递归深度为 1,右子序列递归深度为 3
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
typedef char ElemType;
|
|
|
|
|
|
|
|
|
|
// 定义链表结构体
|
|
|
|
|
typedef struct LNode {
|
|
|
|
|
ElemType data;
|
|
|
|
|
struct LNode *next;
|
|
|
|
|
} LNode, *LinkNode;
|
|
|
|
|
|
|
|
|
|
// 删除与给定值相等的元素
|
|
|
|
|
int LinkChange(LinkNode *L, ElemType x) {
|
|
|
|
|
LinkNode p = *L, q = NULL;
|
|
|
|
|
int flag = 0;
|
|
|
|
|
while (p != NULL) {
|
|
|
|
|
if (p->data == x) {
|
|
|
|
|
if (q == NULL) {
|
|
|
|
|
*L = p->next;
|
|
|
|
|
} else {
|
|
|
|
|
q->next = p->next;
|
|
|
|
|
}
|
|
|
|
|
LinkNode temp = p;
|
|
|
|
|
p = p->next;
|
|
|
|
|
free(temp);
|
|
|
|
|
flag = 1;
|
|
|
|
|
} else {
|
|
|
|
|
q = p;
|
|
|
|
|
p = p->next;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return flag;
|
|
|
|
|
}
|
|
|
|
|
```
|