数据结构学习笔记(二) 链表之带表尾指针的单循环链表
2018-01-22 15:42
316 查看
以下是带表尾指针的单循环链表的基本操作,包括链表的创建、形成循环链表以及打印。
#include<iostream> using namespace std; //抽象数据类型 typedef int datatype; typedef struct node { datatype data; struct node *next; }ListNode,*LinkList; //带表头结点的单链表的创建 ListNode* Create(int i) { datatype x; ListNode *head,*p,*q; head=new ListNode; q=head; cout<<"请输入5个数:"<<endl; while(i--) { p=new ListNode; cin>>x; p->data=x; p->next=NULL; if(q!=NULL) q->next=p; q=p; } return head; } //形成循环链表 void CreateCircle(LinkList &rear,int i) { datatype x; ListNode *p,*q,*head; p=head=Create(5); while(p->next!=NULL) p=p->next; rear=p; rear->next=head->next; delete head; } //打印单链表 void Print(LinkList &rear) { //参数检查 if(rear==NULL) { cout<<"链表为空!"<<endl; return; } ListNode *p; p=rear->next; cout<<"链表中的元素为:"<<endl; /*while(p!=rear) { cout<<p->data<<" "; p=p->next; }*/ cout<<"rear->data= "<<rear->data<<endl; cout<<"rear->next->data= "<<rear->next->data<<endl; } //测试函数 int main() { LinkList rear; CreateCircle(rear,5); Print(rear); return 0; }
相关文章推荐
- bo2-4.cpp设立尾指针的单循环链表(存储结构由c2-2.h定义)的12个基本操作
- 无头节点的单循环链表中删除指针s所指结点的前驱结点
- 设置尾指针的单循环链表
- 无表头表尾指针的单链表删除节点
- 单循环链表(头指针指在头结点)『3』
- 单循环链表(使用尾指针表示)
- 利用快慢指针快速得到链表中间节点
- 使用指针P,Q使链表反转
- 使用结构指针实现链表
- Linus:利用二级指针删除单向链表
- c 链表之 快慢指针 查找循环节点
- 链表两节点互换的指针问题
- 【启发】求有环单链表中的环长、环起点、链表长【快 、 慢指针】
- 双向链表 只使用一个指针
- 链表(用一个结构体管理另一个结构体的头指针),方便管理好几个链表的情况。
- 链表空指针建立(个人想法)
- 复制含有随机指针节点的链表
- 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序
- 有关链表中维护二个指针
- Reverse Nodes in k-Group 指针操作 每k个翻转链表