顺序表的实现

2010 年 12 月 13 日 下午 12:54  |  分类:数据结构

//线性表的动态分配顺序存储结构,构造,插入与删除。
#include<string.h>
#include<ctype.h>
#include<malloc.h>
#include<limits.h>
#include<stdio.h>
#include<stdlib.h>
#include<io.h>
#include<math.h>
#include<process.h>
#include<iostream.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
typedef int Status;
typedef int Boolean;
typedef int ElemType;
#define LIST_INIT_SIZE 10
#define LIST_INCREMENT 2
全文阅读 »

直接插入排序的实现

2010 年 12 月 13 日 下午 12:33  |  分类:数据结构

#include<stdio.h>

#define LT(a,b) ((a)<(b))

#define MAX_SIZE 50 /* 一个用作示例的小顺序表的最大长度 */

#define N 8

typedef int InfoType; /* 定义其它数据项的类型 */

typedef int KeyType; /* 定义关键字类型为整型 */

typedef struct

{  KeyType key; /* 关键字项 */

   InfoType otherinfo; /* 其它数据项,具体类型在主程中定义 */

}RedType; /* 记录类型 */ 全文阅读 »

静态顺序表的查询

2010 年 12 月 13 日 下午 12:32  |  分类:数据结构

//静态顺序表的查找

#include <malloc.h>

#include <stdio.h>

#include <stdlib.h>

#define OK 1

#define ERROR 0

#define LT(a,b)((a)<(b))

#define NULL 0

#define EQ(a,b)((a)==(b))

#define LT(a,b)((a)<(b))

#define N 5 /* 数据元素个数 */

#define key number /* 定义关键字为准考证号 */

typedef long KeyType; /* 设关键字域为长整型 */

typedef int Status;

typedef struct

{  long number; /* 准考证号,与关键字类型同 */

   char name[9]; /* 姓名(4个汉字加1个串结束标志) */

   int politics; /* 政治 */

   int Chinese; /* 语文 */

   int English; /* 英语 */

   int math; /* 数学 */

   int physics; /* 物理 */

   int chemistry; /* 化学 */

   int biology; /* 生物 */

   int total; /* 总分 */

}ElemType; /* 数据元素类型*/

/*  静态查找表的顺序存储结构 */ 全文阅读 »

串的定长顺序表示与实现

2010 年 12 月 13 日 下午 12:31  |  分类:数据结构

#include <stdio.h>

#include <String.h>

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

typedef int Status;

#include <stdlib.h>

#define MAX_STR_LEN 255

typedef int status;

typedef unsigned char SString[MAX_STR_LEN+1];

Status StrAssign(SString T,char *chars)

 { // 生成一个其值等于chars的串T

   int i;

   if(strlen(chars)>MAX_STR_LEN)

     return ERROR;

   else

   {

     T[0]=strlen(chars);

     for(i=1;i<=T[0];i++)

       T[i]=*(chars+i-1);

     return OK;

   }

 }

 void StrCopy(SString T,SString S)

 { // 由串S复制得串T 全文阅读 »

单链队列的表示与实现

2010 年 12 月 13 日 下午 12:30  |  分类:数据结构

#include<string.h>

#include<ctype.h>

#include<malloc.h>

#include<limits.h>

#include<stdio.h>

#include<stdlib.h>

#include<io.h>

#include<math.h>

#include<process.h>

#include<iostream.h>

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

typedef int QElemType;

typedef int Status;

typedef struct QNode

{

       QElemType data;

       struct QNode *next;

}QNode,*QueuePtr;

typedef struct

{

       QueuePtr front;//队头指针

       QueuePtr rear;//队尾指针

}LinkQueue;

//构造一个空队列Q

Status InitQueue(LinkQueue &Q)

{

       Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));

       if(!Q.front)exit(OVERFLOW);//存储分配失败

       Q.front->next=NULL;

       return OK;

}

//销毁队列Q

Status DestroyQueue(LinkQueue &Q)

{

       while(Q.front)

       {

              Q.rear=Q.front->next;

              free(Q.front);

              Q.front=Q.rear;

       }

       printf(“链队列Q已销毁!\n”);

       return OK;

}

//插入元素e为Q的新的队尾元素

Status EnQueue(LinkQueue &Q,QElemType e)

{

       QueuePtr p;

       p=(QueuePtr)malloc(sizeof(QNode));

       if(!p) exit(OVERFLOW);//存储分配失败

       p->data=e;p->next=NULL;

       Q.rear->next=p;

       Q.rear=p;

       return OK;

}

//若队列不空,则删除Q的对头元素,用e返回其值,并返回OK,否则返回ERROR

全文阅读 »

顺序栈的表示与实现

2010 年 12 月 13 日 下午 12:29  |  分类:数据结构

#include<string.h>

#include<ctype.h>

#include<malloc.h>

#include<limits.h>

#include<stdio.h>

#include<stdlib.h>

#include<io.h>

#include<math.h>

#include<process.h>

#include<iostream.h>

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define STACK_INIT_SIZE 100

#define STACKINCREMENT 20

typedef int SElemType;

typedef int Status;

typedef struct

{

 SElemType *base;

 SElemType *top;

 int stacksize;

}SqStack;

//***构造一个空栈S***//InitStack

Status InitStack(SqStack &S)

{

 S.base=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));

 if (!S.base)  //存储分配失败

全文阅读 »

线性单链表的实现

2010 年 12 月 13 日 下午 12:28  |  分类:数据结构

//线性单链表的建立,插入,删除。

typedef int ElemType;

#include<string.h>

#include<ctype.h>

#include<malloc.h>

#include<limits.h>

#include<stdio.h>

#include<stdlib.h>

#include<io.h>

#include<math.h>

#include<process.h>

#include<iostream.h>

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

typedef int Status;

typedef int Boolean;

struct LNode

{

       ElemType data;

全文阅读 »