循环链表
2011-05-08 19:00
106 查看
#include <iostream> #include <fstream> #include <string> #include <vector> #include <string.h> #include <stdlib.h> #include <stdio.h> using namespace std; typedef struct ring { char a; struct ring *flink; struct ring *slink; } ring; ring* sring = NULL; ring* hring = NULL; /* the first node */ ring* ering = NULL; /* the end node */ void ring_pushback( ring* r, int n ) { static int i = 0; if ( i == 0 ) { sring = r; ++i; hring = r; } else { sring->slink = r; r->flink = sring; sring = r; /* the end node */ if ( i == n - 1 ) { sring->slink = hring; hring->flink = sring; ering = sring; } ++i; } } int main( void ) { /*ofstream fout( "beads.out" ); ifstream fin( "beads.in" );*/ int n, i; char temp; cin >> n; for ( i = 0; i < n; ++i ) { cin >> temp; //ring* bread = (ring*)malloc( sizeof( ring ) ); ring* bread = new ring; bread->a = temp; bread->flink = NULL; bread->slink = NULL; ring_pushback( bread, n ); } ring* p = NULL; ring* q = NULL; p = hring; do { cout << p->a << endl; q = p; p = p->slink; delete q; }while( p != hring ); }
相关文章推荐
- 【Java数据结构】2.4单循环链表的实现
- 【C++/数据结构】循环链表的基本操作
- 3.3 循环链表
- 在链表里如何发现循环链接
- 双向循环链表
- 消除链表中的循环
- 数据结构-循环链表
- 双向循环链表的建立
- C语言实现双向循环链表
- 判断单链表是否为循环链表-----在有序链表中寻找中位数------使用快慢指针
- 探测循环链表
- 双向循环链表的应用
- 数据结构Java实现04----循环链表、仿真链表
- C语言之循环链表
- 双向循环链表
- 快慢法判断单链表中是否有循环链表
- C/C++、JAVA 数据结构 :双向循环链表
- 双向循环链表基本操作(C语言)
- 算法导论 XOR双向循环链表——内存高效链表
- Java 循环链表