第四周项目1-建立单链表
2015-09-11 09:38
253 查看
/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:建立单链表.cpp
*作 者:杨惠娟
*完成日期:2015年10月5日
*版 本 号:v1.0
*/
代码为:
学习心得:
多动手练习,实践很重要。
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:建立单链表.cpp
*作 者:杨惠娟
*完成日期:2015年10月5日
*版 本 号:v1.0
<span style="font-size:14px;">问题描述:定义单链表存储结构,用头插法和尾插法建立单链表,并显示建立好以后的结果。</span>
<pre class="html" name="code"><span style="font-size:14px;">输入描述:若干数据 。 </span>
<span style="font-size:14px;">程序输出:输出8个以头插法建立的链表数据和6个以尾插法建立的链表数据。 </span>
*/
代码为:
#include <stdio.h> #include <malloc.h> typedef int ElemType; typedef struct LNode <span style="color:#ff0000;">//定义单链表结点类型 </span>{ ElemType data; struct LNode *next; <span style="color:#ff0000;">//指向后继结点 </span>} LinkList; void CreateListF(LinkList *&L,ElemType a[],int n<span style="color:#ff0000;"><span style="color:#000000;">);</span>//头插法建立单链表 </span>void CreateListR(LinkList *&L,ElemType a[],int n<span style="color:#ff0000;"><span style="color:#000000;">);</span>//尾插法建立单链表 </span>void DestroyList(LinkList *&L); <span style="color:#ff0000;">//销毁单链表 </span>void DispList(LinkList *L); <span style="color:#ff0000;">//输出单链表 </span>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) { int i=0; LinkList *p,*q; L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL; while(i<n) { p=(LinkList *)malloc(sizeof(LinkList)); p->data=a[i]; p->next=L->next; L->next=p; i++; } } void CreateListR(LinkList *&L,ElemType a[],int n) { LinkList *p,*q; int i=0; L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL; q=L; while(i<n) { p=(LinkList *)malloc(sizeof(LinkList)); p->data=a[i]; p->next=q->next; q->next=p; q=p; i++; } } void DispList(LinkList *L) { LinkList *p; p=L; p=p->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } printf("\n"); } void DestroyList(LinkList *&L) { LinkList *p,*q; p=L,q=p->next; while(q!=NULL) { free(p); p=q; q=q->next; } free(q); } <span style="font-size:14px;color:#ff0000;"><strong>运行结果:</strong></span>
<img src="https://img-blog.csdn.net/20151005163743505?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<span style="font-size:14px;color:#ff0000;"><strong>知识点总结:</strong></span>
<span style="font-size:12px;">单链表的建立,输出和摧毁。</span>
学习心得:
多动手练习,实践很重要。
相关文章推荐
- Java Map 按key排序和按Value排序
- 第二周 项目2 程序的多文件组织
- java利用当前时间,得到上一个月份
- golang rabbitmq实践 (一 rabbitmq配置)
- 工作总结
- 移动开发框架
- 项目3——体验复杂度 (1)
- Gradle在eclipse内执行编译和运行慢的问题解决
- 忘记MySql 5.X root 密码 windows
- Java基本类型转byte[],java与c通信数据转换
- C++中引用和指针的区别
- 7 bad habits of highly ineffective software engineers
- hadoop spark学习笔记
- Linux查看系统性能命令
- 将string中的unicode转为汉字 其他不变
- 第2周、项目1—C++语言中函数参数传递的三种方式
- 07-查看系统的开机时间
- 本人新手,请大家多多指教
- linux文件类型
- LeetCode Implement Queue using Stacks