数据结构C语言实现介绍

刚刚结束的大二上学期学习了数据机构C语言版这门课,在接下来的一个月中准备把课程的代码和知识点总结一下,就有了这个专题:数据结构C语言实现,在这里我将用C语言实现最基本的数据结构以及一些基本的算法,以下是我这个专题的内容:

1. 数据结构及算法简介: 主要介绍数据结构及算法的基础知识,一些基本的概念和术语,以及算法的定义、算法的特性、算法的时间复杂度和空间复杂度

2.顺序表的定义及算法实现: 主要介绍顺序表的定义及特点,实现顺序表的存储结构以及基本操作

3.单链表的定义及算法实现:  主要介绍单链表的定义和表示,实现单链表的存储结构以及基本操作

4.双向链表的定义及算法实现:  主要介绍双向链表的定义和表示, 实现双向链表的存储结构以及基本操作

5.循环链表的定义及算法实现:   主要介绍循环链表的定义和表示,  实现循环链表的存储结构以及基本操作

6.有关顺序表和单链表的习题:   解决一些常见的有关顺序表和单链表的习题,比如说两个表的合并,表的倒置等问题

7.顺序栈及循环队列的定义及算法实现:  主要介绍顺序栈及循环队列的定义及特点,实现顺序栈及循环队列的存储结构和基本操作

8.链栈及链队的定义及算法实现:   主要介绍链栈及链队列的定义及特点,实现链栈及链队列的存储结构和基本操作

9.栈与递归问题:   主要介绍递归算法,递归与栈的关系,介绍一些经典的递归算法

10.字符串的定义及算法实现:  主要介绍字符串的定义及特点,  实现字符串的存储结构以及基本操作

11.字符串的模式匹配算法:  主要介绍BF算法和KMP算法

12.二叉树的定义及算法实现:  主要介绍树、二叉树的定义及性质、二叉树的存储结构、线索二叉树的定义, 实现二叉树的遍历以及线索二叉树的构造、遍历

13.哈夫曼树的定义及算法实现:  主要介绍哈夫曼树的基本概念,实现哈夫曼树的构造以及哈夫曼编码算法

14.图的定义及存储结构及算法实现:  主要介绍图的定义及基本术语,介绍几种图的存储结构,实现图的深度优先遍历和图的广度优先遍历算法

15.图的应用: 介绍最小生成树、最短路径、拓扑排序、关键路径的定义及特点,实现求最小生成树的普里姆算法和克鲁斯卡尔算法,实现求最短路径的迪杰斯特拉算法和弗洛伊德算法那,实现求拓扑排序的算法,实现求关键路径的算法

原文地址:https://www.cnblogs.com/wyb666/p/8158843.html

时间: 2024-10-06 22:19:42

数据结构C语言实现介绍的相关文章

Redis 中 5 种数据结构的使用场景介绍

这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下 一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 redis 中一共有5种数据结构,那每种数据结构的使用场景都是什么呢? String——字符串 Hash——字典

《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明

先附上文档归类目录: 课本源码合辑  链接??? <数据结构>课本源码合辑 习题集全解析  链接??? <数据结构题集>习题解析合辑 博主有话说: 01.自学编程,难免思路阻塞,所以从今天起,我(StrayedKing)决定在本博客陆续更新严蔚敏,吴伟民版<数据结构-C语言版>各章节的课本源码和配套习题集答案解析,目的是为了整理数据结构中的知识点,并与网友交流意见,集思广益,共同进步.        ★注★ 左侧随笔分类下用两个栏目:<课本源码>.<习

Linux平台上SQLite数据库教程(二)——C语言API介绍

Linux平台上SQLite数据库教程(二)--C语言API介绍 前言:本文将介绍几个基本的SQLite3数据库的C语言API接口,主要用到两个文件:sqlite3.c.sqlite3.h.源码地址:https://github.com/AnSwErYWJ/SQLite. 打开数据库 1.原型: int sqlite3_open( const char* filename, /* 数据库文件名, 必须为 UTF-8 格式 */ sqlite3** ppDB /* 输出: SQLite 数据库句柄

数据结构C语言实现——线性链表

declaration.h #ifndef DECLARATION_H_INCLUDED #define DECLARATION_H_INCLUDED #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define ElemType int typedef ElemType* Triplet; typedef int Status; type

实现基于数据结构的语言

创建任何 DSL 都应该从定义需要解决的问题开始.这里,我们需要定义一个 DSL 库(有时也称为组合库,combinators library),用于二维图形,这是一个很明显的选择.这个示例演示如何用大量简单的基本图形构建出复杂的结构.在计算机屏幕上的图像本质上就是线条和多边形的集合,尽管显示出来的图形可能极其复杂.这个示例用四个模块表现:第一,清单 12-1,提供创建图片的基本操作(primitives):第二,清单12-2,如何实现解释图片:清单 12-3 和清单 12-4 用示例演示如何使

数据结构c语言版串的操作

#include<stdio.h> #include<malloc.h> #include<string.h> //定义字符串的结构体 typedef struct { char *str;//字符串 int maxLength;//最大可以存放字符的长度 int length;//目前的字符长度 }DString; //1.初始化操作 //初始化操作用来建立和存储串的动态数组空间以及给相关的数据域赋值 void Initiate(DString *s,int max,

Cocos2d-x 脚本语言Lua介绍

Cocos2d-x 脚本语言Lua介绍 本篇博客记录Lua学习.学习来自eoe论坛,Lua语言开发Cocos2d-x游戏入门视频教程,猛戳下面地址: http://www.eoeandroid.com/thread-320602-1-1.html 由于Lua语言小巧.简单.能与C/C++无缝结合.运行高速.易于更新等长处,越来越多的公司在使用Lua语言进行游戏开发,而非常多Cocos2d-xproject师的招聘要求上直接写明要求会Lua语言.我了解到一家公司在开发Cocos2d-x游戏时游戏逻

深入浅出数据结构C语言版(5)——链表的操作

上一次我们从什么是表一直讲到了链表该怎么实现的想法上:http://www.cnblogs.com/mm93/p/6574912.html 而这一次我们就要实现所说的承诺,即实现链表应有的操作(至于游标数组--我决定还是给它单独写个博文比较好~). 那么,我们的过程应该是怎么样的呢?首先当然是分析需要什么操作,然后再逐一思考该如何实现,最后再以代码的形式写出来. 不难发现,我们希望链表能支持的(基础,可以由此延伸)操作就是: 1.给出第n个元素 2.在第n个元素的后面插入一个元素(包含在最后一个

深入浅出数据结构C语言版(8)——后缀表达式、栈与四则运算计算器

在深入浅出数据结构(7)的末尾,我们提到了栈可以用于实现计算器,并且我们给出了存储表达式的数据结构(结构体及该结构体组成的数组),如下: //SIZE用于多个场合,如栈的大小.表达式数组的大小 #define SIZE 1000 //表达式的单个元素所使用的结构体 typedef struct elem { int num = 0; //若元素存储操作数则num为该操作数 char oper = '='; //若元素存储操作符则oper为该操作符 bool IsNum = false; //用于