数据结构 线性表 建立循环链表

原创 2013年12月02日 18:57:48
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>

#define OVERFLOW    -2

typedef int ElemType;

typedef struct LNode
{
	ElemType data;
	struct LNode *next;
}LNode, *LinkList;

void CreateList_L(LinkList &L, int n)
{
	int i;
	LinkList p,q;
	L = (LinkList) malloc (sizeof(LNode));
	if (!L)
	{
		exit(OVERFLOW);
	}
	q = L;
	q->next = L;
	for (i=n; i>0; --i)
	{
		p = (LinkList) malloc (sizeof (LNode));
		if (!p)
		{
			exit(OVERFLOW);
		}
		scanf("%d",&p->data);
		p->next = L;
		q->next = p;
		q = p;
	}
}


void Display(LinkList L)
{
	LinkList p = L->next;
	while (p != L)
	{
		printf("%d ",p->data);
		p = p->next;
	}
	printf("\n");
}


int main()
{
	int n;
	LinkList L;
	printf("请输入您要创建循环链表的元素的个数:");
	scanf("%d",&n);
	CreateList_L(L,n);
	Display(L);
	return 0;
}

<数据结构> 第二章 线性表之循环链表的代码粗实现

不多说,直接上代码。

数据结构(4)-线性表(循环链表)

概念:将单链表终端节点的指针由空指针改为指向头结点,就使整个单链表形成一个环,这种首尾相接的单链表称为单循环链表,简称循环链表; 循环链表和单链表的区别:尾结点的指针不指向null,而是指向head...

数据结构_线性表_链式存储_双向循环链表的基本操作

//双向链表,将头结点和尾结点链接起来,就构成了双向循环链表 //双向循环链表是将头结点的前驱指针指向了尾结点,同时将尾结点的后劲指针指向了头结点. //空表,头结点的前驱和后继指针均指向了自己,...

数据结构学习----线性表的链式表示之循环单链表(Java实现)

线性表接口LList: package com.clarck.datastructure.linked; /** * 线性表接口LList,描述线性表抽象数据类型,泛型参数T表示数据元素...

小猪的数据结构辅助教程——2.4 线性表中的循环链表

小猪的数据结构辅助教程——2.4 线性表中的循环链表标签(空格分隔): 数据结构本节学习路线图与学习要点学习要点: 1.了解单链表存在怎样的缺点,暴露出来的问题 2.知道什么是循环单链表...

数据结构_线性表_链式存储_单向循环链表的基本操作

1.概述: 对于一个循环链表来说,其首节点和末节点被连接在一起。这种方式在单向和双向链表中皆可实现。要转换一个循环链表,可以选择开始于任意一个节点然后沿着列表的任一方向直到返回开始的节点。再来看另一...

(8) Java源码分析 ---- LinkedList (对应数据结构中线性表中的双向循环链表,JDK1.6)

一、源码解析 1、 LinkedList类定义 2、LinkedList数据结构原理 3、私有属性 4、构造方法 5、元素添加add()及原理 6、删除数据remove() 7、数据获取get() 8...

数据结构(9)线性表之循环链表介绍

导言 循环列表 循环列表结构 单循环列表实现代码 运行结果导言循环列表是链式存储结构的一种形式。它的特点从名字就可以清楚,“循环”。那么如何实现循环。 循环的实现很简单,只有表的最后一个结点的指针,...

小猪的数据结构辅助教程——2.7 线性表中的双向循环链表

小猪的数据结构辅助教程——2.7 线性表中的双向循环链表标签(空格分隔): 数据结构本节学习路线图与学习要点学习要点: 1.了解引入双向循环链表的原因 2.熟悉双向循环链表的特点以及存储结构...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构 线性表 建立循环链表
举报原因:
原因补充:

(最多只允许输入30个字)