数据结构之线性表课件(编辑修改稿)内容摘要:
如下面的图所示。 假设指针 p指向单链表中的第 i个结点,指针 s指向已生成的新结点,链入新结点的操作如下: 将新结点 *s的链域指向结点 *p的后继结点 (即 snext=pnext); 将结点 *p的链域指向新结点 (即 pnext=s)。 head a1 a 2 a i a n ∧ a i +1 S x P insert(head) /*在第 i个结点 后 插入结点 S { linklist *p=head。 int k=0。 while ((p!=null) $$ (kI)) { p=pnext。 k=k+1。 } s=(linklist *)malloc(sizeof(linklist)) if (s= =null) { printf (“没有足够的空间 ” ) Return(null) } snext=pnext。 pnext=s。 return(head) 插入算法 Linklist *insertllist (head, x, k) / 在头指针为 linklist *head。 head的单链表的第 K个 elementtype x。 结点之 前 插入 X int k。 {linklist *p,*pre,*s。 int j=1。 p=head; pre=null。 while [(p!=null) $$ (jk)] /*找出第 k个结点的 {pre=p; /*指针 p和它的前趋 p=pnext。 /*结点 pre j++ } 插入算法续 if(j!=k) { printf(“k超出链表的长度 ” )。 return(null)。 } s=(linklist *)malloc(sizeof(listlist)) if (s= =null) { printf (“没有足够的空间 ” ) Return(null) } 插入算法续 sdata=x。 If (pre==null) /*插入的结点位于链 { snext=head。 /*表的头部 , 即 k=1 head=s。 } else { snext=p。 prenext=s。 } return(head) } 3. 删除 假设单链表 带有头结点 ,头指针为 head,删除单链表上一个 其值为 x的结点。 主要操作 是: 1) 用遍历的方法在单链表上找到该结点; 2) 从单链表上删除该结点。 欲从单链表上删除一个结点,需修改该结点的前一个结点的指针,如下面的图所示。 假设指针 q指向待删除结点的前一个结点,指针 p指向要删除的结点,删除该结点的操作如下:将该结点的前一个结点 *q的链域指向 *p的后继结点(即 qnext=pnext)。 x head ∧ p q 删除算法 Linklist * Delete (head, x) linklist *head。 elementtype x。 { linklist *q,*p。 q=head。 p=headnext。 while((p!=null) amp。 amp。 (pdata!=x)) { q=p。 p=pnext。 } 删除算法续 if (p=NULL) { printf (“x不存在 ” ) return(null)。 } else { qnext=pnext。 /*修改指针 free(p)。 } return(head)。 } 返回 静态链表 在某些语言中,没有指针类型,就不能实现链表,可用一数组来模拟链表,这就是静态链表。 静态链表的定义 define maxsize 元素的最大个数 typedef struct {elementtype data。 int next。 }slinklist。 如: slinklist sl[maxsize]。 定义了一个有 maxsize个元素的数组,每个元素由信息域和指针域组成。 例: L=( a, b, c, d, e, f), 0 0 1 1 2 2 3 3 4 4 5 5 6 6 插入 h之后 0 1 a 2 b 3 c 4 d 5 e 6 f 0 0 1 a 2 b 7 c 4 d 5 e 6 f 0 h 3 线性表实现方法比较 链表:在已知元素个数的情况下,浪费空间; 在未知元素个数的情况下,节约空间; 速度快。 顺序表:在已知元素个数的情况下,空间利用率 高;。数据结构之线性表课件(编辑修改稿)
相关推荐
∨ 交流 ∨ 信息技术 ∨ 自我改善 ∨ 与人合作 ∨ 解决问题 ∨ 综合素质 具备较高的理论水平和政策水平; 组织、协调和决策能立强; 具有较强的商务谈判能力; 客户服务意识超前; 具备市场营销和数据专业技术的多方面知识。 其他要求 需要经常加班 岗位说明书 岗位名称 数据通信局副局长 所属部门 数据通信局 直接上级 数据通信局局长 职务代码 岗位工资 工作目的 协助局长开展分管工作 工作描述
{ 语句序列 } 类 C语言的形参书写比标准 C语言简单, 如, int xyz(int a,int b,int c)可以简单写成 int xyz (int a,b,c) 类 C与标准 C的主要区别 (续 ) • 2. 局部量的说明可以省略,必要时对其 作用给予注释。 • 3. 不含 go to语句,增加一个出错处理语 句 error(字符串 ),其功能是终止算法
如何准确的把握市场 工 作 禁 忌 1. 业务不熟悉; 2. 不了解大用户动态,工作盲目。 职 业 发 展 业务主管 任职资格 知 识 经 验 1. 学历要求:高中及以上学历,且满足高中毕业工作年限 15 年或获得中专学历工作年限 6年或获得大专学历工作年限 3年或获得本科学历工作年限 2年学历; 2. 工作经验:工作两年以上; 3. 专业背景要求:具有助理级专业技术资格。 如果满足高中学历条件
/*矩阵的行数 */ int。 /*矩阵的列数 */ int tn。 /*矩阵的非 0元素个数 */ tritype data[maxn]。 /*非 0元素的三元组表 */ }tmatrix。 把 M压缩后,存储成: 行数 rn 列数 非 0数 tn 行号 列号 元素值 1 2 2 1 3 1 3 1 1 3 6 4 5 2 8 6 1 5 7 6 9 7 7 7 例 : 求
极差是( ) 1 名车工参加直径为 5mm 精密零件 的加工技术比赛,随机抽取甲、乙两名车工加工的 5 个零件,现测得的结果如下表,平均数依次为 、 ,方差依次为 、则下
个一维数组 r中,具体的做法是:设两个指示器 i和 j,初始时 i指向数组中的第一个数据, j指向最末一个数据。 i先不动使 j逐步前移,每次对二者所指的数据进行比较,当遇到 r[i]大于 r[j]的情况时,就将二者对调位置;然后令 j固定使 i逐步后移做数据比较,当遇到 r[i]大于 r[j] 时,又进行位置对调;然后又是 i不动使 j前移作数据比较; …… ; 如此反复进行,直至 i与