数据结构01_线性表_实验楼学习笔记
来源:互联网 发布:linux gtk编程 编辑:程序博客网 时间:2024/05/19 23:11
线性表
- 简单的说线性结构是N各数据元素的有序集合有如下几个特征
- 集合中必存在唯一的一个“第一元素”
- 集合中必存在唯一的一个“最后的元素”
- 除最后元素外,其他数据元素均有唯一的“后继”
- 除第一元素之外,其他数据元素均有唯一“前驱”
线性表的链式表示和实现
- 线性表的顺序存储结构是逻辑和物理位置都相邻,而链式存储结构是逻辑位置相邻,相比顺序的存储结构,它不能随机存取,但插入和删除操作时不需要移动元素,大大提高了增加删除元素的效率
- 当向链表:每个元素只有一个指向后驱的指针(初开最后一个)
- 循环链表:最后一个元素有一个指向后驱的指针指向的是头节点
- 双向链表:每一个元素都有两个指针,一个指向前驱,一个指向后驱元素
课后练习:c语言实现最大连续
- 穷举法,动态规划(动态规划是运筹学的一个分支,是求解决策过程最优化的数学法)
- 代码
//
// main.c
// Data_structure_Day1
//
// Created by apple on 2017/8/18.
// Copyright © 2017年 tongjian. All rights reserved.
//
#include <stdio.h>
//c语言实现最大子序列求和,子函数的声明
int Max_Sub (int a[],int leng);
int Max_Sub_mv (int a[],int leng);
int main(int argc, const char * argv[]) {
// insert code here...
int Test[] = {-2,11,-4,13,-5,2,-3,12,-9,-5};
int Result_ex = Max_Sub(Test,10);
int Result_mv = Max_Sub_mv(Test, 10);
printf("最大顺序子序列和为/穷举%d=\n",Result_ex);
printf("最大顺序子序列和为/动态规划=%d\n",Result_mv);
printf("Hello, World!\n");
return 0;
}
//穷举法
int Max_Sub (int a[]/*input*/,int leng/*input*/)
{
int result,max;
result = max = 0;
int i ,j,k;
for (i= 0; i<leng; i++) {
for (j = 0; j<leng-i; j++) {
result = 0;
for (k = 0; k<=i; k++) {
result += a[j+k];
}
if (max < result) {
max = result;
}
}
}
return max;/*output*/
}
//动态规划
int Max_Sub_mv (int a[]/*input*/,int leng/*input*/)
{
int sum ,max;
int i;
sum = max= 0;
for (i=0; i<leng; i++) {
if(sum > 0)
{
sum += a[i];
}else
{
/*之前的顺序子序列和为负数*/
sum = a[i];
}
if(max < sum)
max = sum;
}
return max;/*output*/
}
- 数据结构01_线性表_实验楼学习笔记
- 数据结构_学习之_ 线性表
- 数据结构_线性表
- 数据结构_线性表
- 数据结构_线性表
- 数据结构_线性表
- 数据结构_线性结构_线性表
- 数据结构_线性链表
- 数据结构_线性表实现
- 数据结构02_线性表
- 数据结构-线性表_单链表
- 数据结构-线性表_单链表
- Java 数据结构_线性表
- C++_008_数据结构_线性表_普通线性表
- php语言_数据结构_树_学习笔记
- 数据结构-线性表_顺序表
- 数据结构-线性表_顺序表
- 数据结构_线性表顺序sequence List
- chatterbot配合ChatterBotCorpusTrainer使用
- 逆序输出单词
- wex5开发-文件下载(可实现app内下载更新apk)
- 109. Convert Sorted List to Binary Search Tree
- 测试用例设计——web类测试
- 数据结构01_线性表_实验楼学习笔记
- hiveQL数据定义
- java中动态的读取src下面的配置文件,动态的读取同个包下面的配置文件。
- 20170818
- Splay模板
- 如何用Python写一个贪吃蛇AI
- 【Django 初学】 -- 配置Mysql
- 算法学习之旅,中级篇(2)-–插入排序
- 创建模式之单例模式