创建循环单链表(头插法)
来源:互联网 发布:无法打开淘宝登陆界面 编辑:程序博客网 时间:2024/06/05 03:03
#include <stdio.h>#include <stdlib.h>typedef int ItemValue;typedef struct LinkNode{ItemValue value;struct LinkNode *next;} Node, *pNode;/* 尾插法*/Node* CreateCylicSingleLinkedList(){Node *head = (Node *)malloc(sizeof(Node)); // Create the head nodeif (!head) {printf("链表创建失败 !\n");}head->next = NULL;ItemValue iValue;Node *pTemp;pTemp = head;while (scanf("%d", &iValue) != EOF){Node *p = (Node *)malloc(sizeof(Node));p->value = iValue;p->next = pTemp->next;pTemp->next = p;pTemp = p;}pTemp->next = head;return head;}/* 头插法 */Node *CreateCylicSingleLinkedListInHead(){Node *head = (Node *)malloc(sizeof(Node));if (NULL == head) {printf("链表头结点创建失败!\n");}head->next = NULL;ItemValue iValue;Node *pTemp;pTemp = NULL;int i = 0; //将尾部节点指向头结点while (scanf("%d", &iValue) != EOF){Node *p = (Node *)malloc(sizeof(Node));p->value = iValue;p->next = head->next; head->next = p;if (i==0) { pTemp = p; } //尾部节点指向头结点,有没有简洁的写法?++i;}pTemp->next = head;return head;}void VisitLinkedList(Node *L){Node *p;p = L;while (p->next != L){printf("%d ", p->next->value);p = p->next;}}int main(){//Node *g_Node = CreateCylicSingleLinkedList(); //尾插法创建循环单链表Node *g_Node = CreateCylicSingleLinkedListInHead(); //头插法创建循环单链表VisitLinkedList(g_Node);free(g_Node);system("pause");return 0;}
运行结果:输入 1 2 3 4 5 6 7 8
输出 8 7 6 5 4 3 2 1
0 0
- 创建循环单链表(头插法)
- 循环单链表(采用尾插法创建链表)
- 单链表和双向循环链表的创建、初始化、以插入(一)
- 单链表和双向循环链表的创建、初始化、以插入(二)
- 创建消息循环
- 循环创建的列.
- jquery循环创建元素
- php循环创建文件夹
- jquery循环创建div
- php 循环创建目录
- 创建消息循环
- 循环创建文件--php
- 创建一条循环双链表
- 循环创建文件夹
- 循环链表创建
- 五、创建循环事件
- 创建循环双链表
- php循环创建文件
- Android中Application类用法
- iOS ARC MRC情况下重写setter getter方法
- 日经社説 20150703 郵政3社は収益向上の道筋を市場に示せ
- IOS 推送详解
- 社説 20150703 アジア投資銀 中国の「独善」へ懸念が増した
- 创建循环单链表(头插法)
- 先来吐个槽~
- 算法导论习题(python)Chapter One
- stl之deque双端队列容器
- 将JSON对象带有格式的写出到文件中
- iOS 百度地图如何自定义弹出汽泡 使用百度官方提供的方法
- SQL登录器制作
- OS X显示桌面
- java中父类对象引用指向子类对象