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

来源:互联网 发布:midi键盘 知乎. 编辑:程序博客网 时间:2024/04/28 11:02
// 单链表的整表创建与删除.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;
}


0 0
原创粉丝点击