第4周实践项目2--建设“单链表”算法库
来源:互联网 发布:上海知贤装饰 编辑:程序博客网 时间:2024/05/17 02:37
/* Copyright (c)2016,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:项目2--建设“单链表”算法库.cpp 作 者:王曼 完成日期:2016年9月23日 版 本 号:v1.0 问题描述:按照“0207将算法变程序”部分建议的方法,建设自己的专业基础设施算法库。 这一周,建的是单链表的算法库。 算法库包括两个文件: 1.头文件:linklist.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明; 2.源文件:linklist.cpp,包含实现各种算法的函数的定义。 请采用程序的多文件组织形式,建立如上的两个文件,另外再建立一个源文件(如main.cpp), 编制main函数,完成相关的测试工作。 测试工作可以采用“渐进”的思路,每次涉及的函数应该尽可能少。 输入描述:若干数据 。 程序输出:插入的节点数据。 */
头文件LinkLIst.h
#include<stdio.h> #include<malloc.h> typedef int ElemType; typedef struct node { int data; node *next; }linklist; void InitList( linklist *& ); void ListInsert(linklist *,int ,int ); void DispList(linklist *); void DestroyList(linklist*); void CreateListF(linklist *&,ElemType a[],int ); void CreateListF(linklist *&,ElemType a[],int )
源文件linklist.cpp
#include"LinkList.h" void InitList(linklist *&l) { l = (linklist*)malloc(sizeof(linklist)); l->next = NULL; } void ListInsert(linklist *l, int i, int e) { linklist *p, *q; int n = 0; i--; p = (linklist*)malloc(sizeof(linklist)); q = l; while (l->next != NULL && n < i) { n++; q = q->next; } if (l->next != NULL) { p->data = e; p->next = q->next; q->next = p; } if (l->next == NULL) { p->data = e; p->next = l->next; l->next = p; } } void DispList(linklist *L) { linklist *p = L->next; while (p != NULL) { printf("%d ", p->data); p = p->next; } printf("\n"); } void DestroyList(linklist* l) { linklist *q, *p; int i = 0; q = l; p = l; q = q->next; while (q->next != NULL) { free(p); p = q; q = q->next; } free(q); } void CreateListF(linklist *&L, ElemType a[], int n) { linklist *p; int i = 0; 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++; } }
main函数main.cpp
#include"LinkList.h" int main() { linklist *L; InitList(L); ListInsert(L, 1, 15); ListInsert(L, 1, 10); ListInsert(L, 1, 5); ListInsert(L, 1, 20); DispList(L); DestroyList(L); return 0; }
运行结果
知识点总结
用文件建立算法库
学习心得
以前基础没打好,现在有点乱,经过前面的练习感觉好了些。
0 0
- 第4周实践项目2--建设“单链表”算法库
- 第4周实践项目2--建设“单链表”算法库
- 第4周实践项目2--建设“单链表”算法库
- 第4周实践项目2--建设“单链表”算法库
- 第4周实践项目2--建设“单链表”算法库
- 第4周实践项目4 - 建设双链表算法库
- 第4周 项目2 建设“单链表”的算法库
- 第4周项目2-建设“单链表”算法库
- 【第4周 项目2 - 建设“单链表”算法库】
- 第4周 项目2-建设“单链表”算法库
- 第4周、项目2—建设“单链表”算法库
- 第4周项目2- 建设“单链表”算法库
- 第4周项目2 建设“单链表”算法库
- 第4周 项目2 - 建设“单链表”算法库
- 第4周 项目2 - 建设“单链表”算法库
- 第4周 项目2 建设“单链表”的算法库
- 第4周项目2建设“单链表”算法库
- 第4周项目2 建设“单链表”算法库
- Spring 定时器Quartz的用法
- github上的一些js及jq插件分享
- PHP基础教程三之运算符
- hive优化:基于map数和reduce数
- tensorflow学习笔记一——模拟一条直线方程
- 第4周实践项目2--建设“单链表”算法库
- 第四周 项目4-猴子选大王
- centos6.6下nginx配置远程服务器上图片访问
- SQLSERVER SQLServer通过端口1433 连接到主机的TCP/IP方法
- Sublime常用插件
- Linux安装jdk1.7和tomcat9版本不匹配引起的错误
- 第四周 猴子选大王
- SDK代理服务器解决国内不能更新下载问题
- 第三课、Spark大型项目广告点击项目数据建模