码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构学习笔记——线性表

时间:2015-08-16 00:50:25      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:数据结构   链表   线性表   

一、特点


1、表头、表尾,其他元素有且仅有一个直接前驱和直接后继


2、任何位置可以插入、删除


二、存储方式


1、顺序表


2、链表(单向链表、双向循环链表)


三、具体实现方式


1、顺序表


问题:

    用顺序表存储一些正整数,输入正整数表示插入数据(比如输入3表示插入3),输入负整数表示删除数据(比如输入-2表示删除2),输入字符表示退出程序。插入和删除的过程中保持该表递增有序。


//seqlist.h

#ifndef __SEQLIST_H__
#define __SEQLIST_H__

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#define SIZE 10   /*数组的长度*/

typedef int datatype;  /*定义结构体*/
typedef struct seqlist
{
	datatype data[SIZE]; //数组
	int last;   //定位元素
}seq_list, *seq_plist;

#endif


//test.c

#include "seqlist.h"

int main(void)
{
	int a;    //输入的数
	int ret;
	seq_plist s;
	s = seqlist_init();  //初始化顺序表
	while(1){
		printf("请输入一个数:\n");
		ret = scanf("%d", &a);
		if(ret != 1)
			exit(1);
		else if(data >= 0)
			seqlist_insert(s, a);
		else
			seqlist_del(s,-a);
	}
	return 0;
}

//seqlist.c

#include "seqlist.h"

seq_plist seqlist_init(void)    //初始化函数
{
	seq_plist s;

	s = (seq_plist)malloc(sizeof(seq_list));
	if(NULL == s){
		printf("malloc failed!\n");
		exit(1);
	}
	s->last = -1;

	return s;
}

void seqlist_insert(seq_plist s, typedata a)  //插入函数
{
	if(seqlist_full(s))
		return;
	int i,j;

	for(i = 0 ; i <= s->last; i++)
		if(a < s->data[i])
			break;
	for(j = s->last; j >= i; j--)
		s->data[j+1] = s->data[j];
	s->data[i] = data;
	s->last++;
	seqlist_show(s);
}

void seqlist_del(seq_plist s, typedata a)   //删除函数
{
	if(seqlist_empty(s))
		return;
	int i,j;

	for(i = 0; i <= s->last; i++)
		if(a = s->data[i])
			break;
	for(j = i; j < s->last; j++)
		s->data[j] = s->data[j+1];
	s->last--;
	seqlist_show(s);
}

bool seqlist_full(seq_plist s)  //判断顺序表是否已满
{
	if(s->last == size-1)
		return true;
	else 
		return false;
}

bool seqlist_empty(seq_plist s) //判断顺序表是否已空
{
	if(s->last == -1)
		return true;
	else 
		return false;
}

void seqlist_show(seq_plist s) //打印顺序表
{
	int i;
	
	for(i = 0; i <= s->last; i++)
		printf("%d\t", s->data[i]);
	printf("\n");
}



本文出自 “云飞墨舞” 博客,请务必保留此出处http://wuyunncu.blog.51cto.com/5978596/1684915

数据结构学习笔记——线性表

标签:数据结构   链表   线性表   

原文地址:http://wuyunncu.blog.51cto.com/5978596/1684915

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!