hgfh_thgfh_fhgfh

电脑杂谈  发布时间:2017-05-01 00:01:23  来源:网络整理

hgfh_thgfh_fhgfh

hgfhhgfh

#include "stdio.h"

#define OK 1

#define ERROR 0

#define TRUE 1

#define FALSE 0

typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */

typedef int ElemType; /* ElemType类型根据实际情况而定,这里假设为int */

struct node

{ int data;

struct node *next;

};

typedef struct Node *LinkList; /* 定义LinkList */

Status visit(ElemType c)

{

printf("%d ",c);

return OK;

}

/* 初始化线性表 */

Status InitList(LinkList *L)

{

*L=(LinkList)malloc(sizeof(Node)); /* 产生头结点,并使L指向此头结点 */

if(!(*L)) /* 存储分配失败 */

{

return ERROR;

}

(*L)->next=NULL; /* 指针域为空 */

return OK;

}

/* 初始条件:线性表L已存在。操作结果:返回L中数据元素个数 */

int ListLength(LinkList L)

{

int i=0;

LinkList p=L->next; /* p指向第一个结点 */

while(p)

{

i++;

p=p->next;

}

return i;

}

/* 初始条件:顺序线性表L已存在 */

/* 操作结果:依次对L的每个数据元素输出 */

Status ListTraverse(LinkList L)

{

LinkList p=L->next;

while(p)

{

visit(p->data);

p = p->next;

}

printf("\n");

return OK;

}

/* 随机产生n个元素的值,建立带表头结点的单链线性表L(尾插法) */

void CreateListTail(LinkList *L, int n)

{

LinkList p,r;

int i;

srand(time(0)); /* 初始化随机数 */

*L = (LinkList)malloc(sizeof(Node)); /* L为整个线性表 */

r=*L; /* r为指向尾部的结点 */

for (i=0; i < n; i++)

{

p = (Node *)malloc(sizeof(Node)); /* 生成新结点 */

p->data = rand()%100+1; /* 随机生成100以内的数字 */

r->next=p; /* 将表尾终端结点的指针指向新结点 */

r = p; /* 将当前的新结点定义为表尾终端结点 */

}

r->next = NULL; /* 表示当前链表结束 */

// 创建有环链表

//r->next = p;

}

Status GetMidNode(LinkList L, ElemType *e)

{

LinkList search, mid;

mid = search = L;

while (search->next != NULL)

{

//search移动的速度是 mid 的2倍

if (search->next->next != NULL)


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-44450-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...