#include <stdio.h>
#include <string.h>
void *lsearch(void *key, void *base, int n, int elemSize, int (*cmpfn)(void *, void *))
{
int i;
void *elemAddr;
for(i = 0; i < n; i++)
{
elemAddr = (char *)base + i * elemSize;
if(cmpfn(key, elemAddr) == 0)
......................
阅读全部 | 2014年11月28日 09:21
#ifndef _LIST_H_
#define _LIST_H_
typedef struct node{ //节点结构
void *data;
struct node *next;
}node;
typedef struct{ //链表结构
struct node *head;
struct node *tail;
long len;
}List;
......................
阅读全部 | 2014年11月24日 18:04
//list.h
#ifndef LIST_H_
#define LIST_H_
#include <stdlib.h>
/* Define a structure for linked list elements. */
typedef struct ListElmt_
{
void *data;
struct ListElmt_ *next;
}ListElmt;
......................
阅读全部 | 2014年11月19日 20:00
#ifndef _List_H
#define _List_H
typedef int ElementType;
struct Node;
typedef struct Node *PtrToNode;
typedef PtrToNode List;
typedef PtrToNode Position;
List MakeEmpty();
int IsEmpty(List L);
int IsLast(Position P, List L);
......................
阅读全部 | 2014年11月1日 20:45
/*
*Author: fdjiangwu
*Date: 2014.11.1
*Function: 给定整数A1,A2,...,AN(可能是负数),求最大子序列的和,如果所有元素全是负数,认为是0
*Algorithm: 算法1和算法2略。算法3为递归算法,算法4技巧性强,需掌握递归算法
*/
#include <stdio.h>
int MaxSubsequenceSumUseAlgo1(const int A[], int N);
int MaxSubsequenceSumUseAlgo2(const int A[], int N);
int MaxSubsequenceSumUseAlgo3(const int A[], int N);
int MaxSubsequenceSumUseAlgo4(const int A[], int N);
......................
阅读全部 | 2014年11月1日 14:32
/*
*Author: fdjiangwu
*Date: 2014.11.1
*Function: 大小为N的数组A,其主要元素是一个出现次数超过N/2次的元素,
* 如果数组中存在该元素,则找到该元素。
*Algorithm: 首先,找到主要元素的一个候选元(这是难点)。这个候选元是唯一有可能是主要元素的元素。
* 然后,确定该候选元是否就是主要元素。这正好是对数组的顺序搜索。
* 找到候选元的方法:为找到数组A的一个候选元,构造第二个数组B。
* 比较A1和A2,如果它们相等,则取其中之一到数组B中,否则什么都不做。
* 然后比较A3和A4,同样地,如果它们相等,则去其中之一到B中,否则什么都不做。
* 按照这种方式继续,直到读完这个数组。
* 然后递归地寻找数组B中的候选元,它也是A中的候选元。
......................
阅读全部 | 2014年11月1日 13:05