您的位置:首页 > 其它

顺序线性表单链表的整表操作

2014-08-25 16:51 316 查看
// 单链表的整表创建与删除.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include <iostream>

#include <Ctime>

using namespace std;

#define OK 1

#define ERROR 0

#define TRUE 1

#define FALSE 0

typedef int ElemType;

typedef struct Node *LinkList;

typedef int Status;

/*线性表的单链表存储结构*/

typedef struct Node

{

ElemType data;

struct Node *next;

}Node;

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

void CreateListHead( LinkList *L , int n )

{

LinkList p;

int i;

srand( time( 0 ) );

*L = ( LinkList ) malloc ( sizeof ( Node ) );

(*L)->next = NULL;

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

{

p = ( LinkList ) malloc ( sizeof ( Node ) );

p->data = rand() %100 +1;

p->next = (*L)->next;

(*L)->next = p;

}

}

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

void CreateListTail( LinkList *L , int n )

{

LinkList p,r;

int i;

srand( time( 0 ) );

*L = ( LinkList ) malloc ( sizeof ( Node ) );

r = *L;

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

{

p = ( LinkList ) malloc ( sizeof ( Node ) );

p->data = rand() %100 +1;

r->next = p;

}

r->next = NULL;

}

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

/*操作结果:将L重置为空表*/

Status ClearList( LinkList *L )

{

LinkList p,q;

int i;

p =(*L)->next;

while ( p )

{

q = p->next;

free( q );

p = q;

}

(*L)->next = NULL;

return OK;

}

int _tmain(int argc, _TCHAR* argv[])

{

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: