C语言单链表和双链表的创建和输出
来源:互联网 发布:淘宝银座365是正品吗 编辑:程序博客网 时间:2024/06/05 20:45
本文将描述C语言实现单向链表和双向链表的创建、输出操作方法。
单向链表
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点;
列表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一个指向nuLL的指针。
程序实现如下:
#include <stdio.h>#include <stdlib.h>typedef struct student { int num; struct student *Next;}*LinkList;struct student *CreatList(int n){ int i,a; LinkList p1,p2,head; head = NULL; printf("请输入元素值:\n"); for(i=0;i<n;i++){ p1 = (struct student *)malloc(sizeof(struct student)); scanf("%d",&a); p1->num = a; if(head == NULL){ head = p1; } else{ p2->Next =p1; } p2 = p1; } p1->Next = NULL; return head;}int main(int argc, char *argv[]) { int n; LinkList p; printf("请输入节点个数:\n"); scanf("%d",&n); p = CreatList(n); printf("该链表为:\n"); while(p!=NULL){ printf("%d\t",p->num); p = p->Next; } getch(); return 0;}
输出窗口为:
双向链表
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。
程序实现如下:
#include <stdio.h>#include <stdlib.h>#include <malloc.h>typedef struct student { int num; struct student *Prior,*Next;}*LinkList;struct student *CreatList(int n){ int i; LinkList p1,p2,head; head = (LinkList)malloc(sizeof(struct student)); head->num = 0; head->Prior = NULL; head->Next = NULL; p2 = head; printf("请输入元素值:\n"); for(i=0;i<n;i++){ p1 = (LinkList)malloc(sizeof(struct student)); scanf("%d",&(p1->num)); p2->Next = p1; p1->Prior = p2; p1->Next = NULL; p2 = p1; } p1->Next = NULL; return head;}int main(int argc, char *argv[]) { int n; LinkList p,head; printf("请输入节点个数:\n"); scanf("%d",&n); head = CreatList(n); p = head->Next; printf("该双向链表为:\n"); while(p){ printf("%d\t",p->num); p = p->Next; } getch(); return 0;}
输出窗口为:
1 0
- C语言单链表和双链表的创建和输出
- c语言链表_递归_创建和输出
- 小结:C语言的输入和输出
- C语言的输入和输出函数
- 单链表的输入和输出(c语言编写)
- C语言输入和输出
- c语言------makefile的创建和使用
- C语言 JSON 的创建和解析
- c语言和c++的输入,输出和异常
- C语言单链表的创建和简单使用
- C语言单链表的创建和添加结点
- C语言实现单链表的创建和添加结点
- c语言实现单链表创建和遍历
- C语言实现单链表创建和遍历
- C语言创建单链表,输出单链表的内容。
- C语言中的输出%d和%lf格式的数据
- c语言 输出系统的日期和时间
- c语言中的字符串的定义及初始化和输出
- UIColor
- 把数据保存到数据库附加表 `dede_addonarticle` 时出错,请把相关信息提交给DedeCms
- SpringMVC实现angularjs图片上传
- 以太网基础知识0(UDP和TCP有什么区别)
- Properties文件的读取。
- C语言单链表和双链表的创建和输出
- 线程池之深度了解-ThreadPoolExecutor
- go中channel简单使用
- Lua代码编写注意点
- Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant)
- hdu2149——Public Sale(巴什博弈)
- Myeclipse2014 创建WebService 服务端简单示例
- 拆箱和装箱的小知识
- lua中的全局函数