第四周项目1——建立单链表
来源:互联网 发布:淘宝退款商家不处理 编辑:程序博客网 时间:2024/05/17 09:11
问题及代码:
/* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:项目1.cpp * 作 者:陈迪 * 完成日期:2016年9月20日 * 版 本 号:v1.0 *问题描述:定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。 *输入描述:无 *程序输出:输出利用头插法和尾插法建立的链表 */
#include <stdio.h> #include <malloc.h> typedef int ElemType; typedef struct LNode //定义单链表结点类型 { ElemType data; struct LNode *next; //指向后继结点 } LinkList; void CreateListF(LinkList *&L,ElemType a[],int n);//头插法建立单链表 void CreateListR(LinkList *&L,ElemType a[],int n);//尾插法建立单链表 void DestroyList(LinkList *&L); //销毁单链表 void DispList(LinkList *L) ;//输出单链表 int main() { LinkList *L1, *L2; ElemType a[8]= {7, 9, 8, 2, 0, 4, 6, 3}; CreateListF(L1, a, 8); printf("头插法建表结果:"); DispList(L1); CreateListR(L2, a, 6); printf("尾插法建表结果:"); DispList(L2); DestroyList(L1); DestroyList(L2); return 0; } //在下面写自定义函数(实现相关算法)的代码 void CreateListF(LinkList *&L,ElemType a[],int n)//头插法建立单链表 { LinkList *s,*r; int i; L=(LinkList *)malloc(sizeof(LinkList));//创建头节点 r=L; //r始终指向尾节点,开始时指向头结点 for (i=0;i<n;i++) //循环建立数据节点 { s=(LinkList *)malloc(sizeof(LinkList));//创建新结点 s->data=a[i]; //创建数据节点*s r->next=s; //将*s插入到*r之后 r=s; } r->next=NULL; //尾节点next域置于NULL } void CreateListR(LinkList *&L,ElemType a[],int n)//尾插法建立单链表 { LinkList *s,*r; int i; L=(LinkList *)malloc(sizeof(LinkList));//创建头结点 L->next=NULL; r=L; //r始终指向终端结点,开始时指向头结点 for (i=0; i<n; i++) { s=(LinkList *)malloc(sizeof(LinkList));//创建新结点 s->data=a[i]; r->next=s; //将*s插入*r之后 r=s; } r->next=NULL; //终端结点next域置为NULL } void DestroyList(LinkList *&L) //销毁单链表 { LinkList *p=L,*q=p->next; //p指向*q的前驱节点 while (q!=NULL) //循环判断 逐个销毁 { free(p); //释放*p节点 p=q; //p、q同步后移一个节点 q=p->next; //再赋值 } free(p); //此时q为NULL,p指向尾结点,释放它 } void DispList(LinkList *L) //输出单链表 { LinkList *p=L->next; //p指向开始节点 while (p!=NULL) //p不为NULL,输出*p节点的date域 { printf("%d ",p->data); p=p->next; //p移向下一个节点 } printf("\n"); }运行结果
知识点总结
学习了头插法和尾插法。
学习心得
学习了单链表。
0 0
- 第四周项目1—建立单链表
- 第四周—项目1 建立单链表
- 第四周项目1—建立单链表
- 第四周—项目1 建立单链表
- 第四周项目1—建立单链表
- 第四周项目1—建立单链表
- 第四周项目1—建立单链表
- 第四周项目1—建立单链表
- 第四周项目1 —建立单链表
- 第四周项目1—建立单链表
- 第四周项目一—建立单链表
- 第四周项目—建立单链表
- 第四周——【项目1 - 建立单链表】
- 第四周上机实践项目1——建立单链表
- 第四周上机实践—项目1—建立单链表
- 第四周项目1——建立单链表
- 第四周:项目1——建立单链表
- 第四周项目1——建立单链表
- 刘汝佳紫书白书题集
- 【Apio2009】Bzoj1179 Atm
- 代理服务器与NAT服务器
- Golang 迅雷下载器SDK
- 第三周项目4-顺序表应用(2)
- 第四周项目1——建立单链表
- ListView中移除某个item的Remove()方法的应用
- NYOJ2 括号配对问题(栈的运用)
- uva 10007 Count the Trees
- 一步一步写算法(之排序二叉树)
- JSPatch的基础用法
- MyEclipse 的部署和启动tomcat的按钮不见了,怎么恢复
- GSON toJson()以及fromJson()方法中int 和string类型都可以相互转换的
- 安卓生成png背景变黑以及网络上一段可能误导的代码