【数据结构】循环链表的建立与输出
2015-11-10 14:43
357 查看
因为循环链表就是讲单链表的最后一个结点的指针不置空,而是指向头结点的next域。因此这里就不加别的操作,建立后便输出,其他操作与单链表无异。
循环链表的建立与输出.cpp
#include <iostream>
using namespace std;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, * LinkList;
void CreatList(LinkList &L, int n)
{
LNode *r,*s;
L = new LNode;
L->next = NULL;
r = L;
for (int i = 0; i < n; i++)
{
s = new LNode;
cin >> s->data;
s->next = L->next;
r->next = s;
r = s;
}
}
void PrintList(LinkList L)
{
LNode *t;
t = L->next;
while (1)
{
cout << t->data << " ";
t = t->next;
if (t->next == L->next)
{
cout << t->data << " ";
break;
}
}
cout << endl;
}
void main()
{
LinkList L;
int n;
cout << "请输入循环链表元素个数n:" << endl;
cin >> n;
cout << "请输入循环链表元素:" << endl;
CreatList(L, n);
cout << "循环链表初始元素为:" << endl;
PrintList(L);
}
循环链表的建立与输出.cpp
#include <iostream>
using namespace std;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, * LinkList;
void CreatList(LinkList &L, int n)
{
LNode *r,*s;
L = new LNode;
L->next = NULL;
r = L;
for (int i = 0; i < n; i++)
{
s = new LNode;
cin >> s->data;
s->next = L->next;
r->next = s;
r = s;
}
}
void PrintList(LinkList L)
{
LNode *t;
t = L->next;
while (1)
{
cout << t->data << " ";
t = t->next;
if (t->next == L->next)
{
cout << t->data << " ";
break;
}
}
cout << endl;
}
void main()
{
LinkList L;
int n;
cout << "请输入循环链表元素个数n:" << endl;
cin >> n;
cout << "请输入循环链表元素:" << endl;
CreatList(L, n);
cout << "循环链表初始元素为:" << endl;
PrintList(L);
}
相关文章推荐
- 【数据结构】单链表的基本操作
- 【数据结构】顺序表的基本操作
- 【数据结构实验】编制一个程序求解迷宫通路
- 【数据结构实验】约瑟夫环的实现
- 数据结构和内存中堆和栈的区别
- 线性表
- 数据结构之栈的c语言实现
- 数据结构与算法
- 数据结构与算法
- 关于数据结构三种简单的排序总结
- 数据结构与算法javascript描述(五) 选择排序
- 数据结构与算法javascript描述(四) 冒泡排序
- 复数类Complex的Java实现(数据结构 例 1-4)
- 【数据结构与算法分析】2.1 斐波拉切数列算法实现
- 数据结构实验之二叉树一:树的同构
- 数据结构 文学研究助手(AC自动机)
- 数据结构基础5.4:堆(HEAP)的基本操作(插入与删除)
- hdu5542 CCPC中国赛 dp + 树状数组
- 【ShancoLove】带你看数据结构——第十二课:图
- 【ShancoLove】带你看数据结构——第十一课:哈夫曼树