在上一篇中,我们学习了线性表最基础的表现形式-顺序表,但是其存在一定缺点:必须占用一整块事先分配好的存储空间,在插入和删除操作上需要移动大量元素(即操作不方便),于是不受固定存储空间限制并且可以进行比较快捷地插入和删除操作的链表横空出世,所以我们就来复习一下链表。
分类:
其他好文 时间:
2015-07-01 08:32:56
阅读次数:
216
数据结构顺序表的操作全集(创建,遍历,插入,删除,排序等等)
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
#define list_size 100
typedef struct Node
{
int data[list_size];
int len;
}NODE,* PNODE;
void creat_list(PNODE L)
{
int i;
int val;
int len;
/*
PNODE L=(PNO...
分类:
编程语言 时间:
2015-06-30 22:11:24
阅读次数:
263
线性结构的特点:1、存在唯一的一个被称作“第一个”的数据元素;2、存在唯一的一个被称为“最后一个”的数据元素;3、除开第一个元素之外,集合中每个元素只有一个前驱;4、除开最后一个元素之外,集合中每个元素只有一个后继。线性表的顺序表示:用一组地址连续的存储单元一次存储线性表的数据元素。(元素在计算机内...
分类:
其他好文 时间:
2015-06-30 12:19:16
阅读次数:
105
顺序表示和链式表示的比较:1.读写方式:顺序表可以顺序存取,也可以随机存取;链表只能从表头顺序存取元素;2.逻辑结构与物理结构:顺序存储时,逻辑上相邻的元素其对应的物理存储位置也相邻;链式存储时,逻辑上相邻的元素,其物理存储位置则不一定相邻;3.查找、插入和删除操作: 按值查找,当线性表在无序的情....
分类:
编程语言 时间:
2015-06-29 16:42:00
阅读次数:
166
/**堆排序*/
/**顺序表存储*/
#include
#include
#define LT(a,b) ((a)<(b))
using namespace std;
int a[]={9,5,2,1,3,4,6,8,9,10};
int n=5;
void f(int s,int m){
/**使a[s...m]成为一个大顶堆*/
int c = a[s];
for(i...
分类:
编程语言 时间:
2015-06-28 00:08:36
阅读次数:
202
seqlist.h#pragma once
#define _SEQ_LIST_
#ifdef _SEQ_LIST_
#include
#include
#include#define DEFAULT_CAPACITY 3
typedef int DataType;typedef struct SeqList
{
DataTyp...
分类:
其他好文 时间:
2015-06-27 18:20:03
阅读次数:
102
前几天写了一个静态顺序表,但是觉得一开始开辟很大一部分空间却不一定可以完全用得上,会造成很大的内存浪费,于是写了一个可以自动开辟内存空间的动态顺序表作为改进。
"DynamicSeqllist.h"
#pragma once
#define __SEQ_LIST__
#ifdef __SEQ_LIST__
#include
#include
#include
#include
ty...
分类:
其他好文 时间:
2015-06-27 16:43:15
阅读次数:
204
void InsertSort(SeList &L) { //对顺序表L作直接插入排序 for(i=2; i <= L.length; ++i) if(LT(L.r[i].key, L.r[i-1].key)){ L.r[0] = L.r[i]; ...
分类:
编程语言 时间:
2015-06-25 16:50:01
阅读次数:
131
**seqlit.h**
#pragma once
#define _SEQ_LIST_
#ifdef _SEQ_LIST_
#include
#include
#include#define MAX_LEN 100
typedef int DataType;typedef struct SeqList
{
DataType a...
分类:
其他好文 时间:
2015-06-23 10:19:57
阅读次数:
152