- 1、本文档共271页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上财系列数据结构讲义
课程内容
线性表
串处理
内部排序
数组
树及树的应用
图
教学方法
理解算法(算法的输入、算法的输出、算法
的时间、空间)
用c语言描述算法,但语法不一定非常严格
课后进行一些上机练习,其中布置若干个作
业要求完成
C语言基本内容复习
基本语句
分支程序
循环程序
函数
数据类型
数组与指针
第一章 线性表
$1:线性表及其基本运算
线性表的基本概念
线性表是具有相同类型的n个数据元素K0 、
K 、K …K 的序列。记为(K 、K 、
1 2 n-1 0 1
K2 …Kn-1 )n
n称为表的长度, n=0时称为空表
线性表的基本概念
前趋元素 Ki是Ki+1的前趋元素
后继元素 Ki+1是Ki的后继元素
相同的线性表(元素的值、个数、次序完全
一样
线性表的基本概念
元素也称为结点、记录
元素可以是一个整数、实数、字符、字符
串、或有若干个数据项目构成
举例:(1,2,3,4 ,5,6 )
唯一标识结点的字段称为关键字,简称键。
为了讨论方便,只考虑关键字
线性表的基本运算(操作、处
理)
查找
已知第 i个结点
在表中查找值为X 的结点
插入
把新结点插在线性表的第 i 个位置上
把新结点插在值为X 的结点前面(或后面)
线性表的基本运算
删除
在线性表中删除第 i 个结点
在线性表中删除值为X 的结点
其他运算
统计线性表中结点的个数
打印线性表中的所有结点
复制线性表
分割成N个线性表
合并线性表
排序线性表
$2 :顺序存贮的线性表
线性表的存贮
顺序方式(连续的存贮单位)
非顺序方式(非连续的存贮空间)
顺序存贮的线性表
线性表的插入
线性表的删除
用顺序存贮线性表表示多项式
#define MAXN 100
typedef struct
{ int coef ;
int exp;
} TERM ;
TERM poly [MAXN];
int ah, at,·bh,bt, eh,ct,tree ;
$3:顺序存贮的栈和队列
栈及其基本运算
队列及其基本运算
环形队列
双向队列
栈的应用
(1)、后缀表达式的计算
#include ctype.h
#include stdio.h
#define MAXN 100
char mid,e[MAXN],pos_e[MAXN];
int v[26];
int evaluate(Pos_e,p_y)
char pos_e[];
int *p_y;
{int stack[MAXN],top,i,j,k,x,y,z;
char c;
top=-1;
i=0;
c=pos_e[0];
while(c!=\0)
{if(islower(c))
stack[++top
文档评论(0)