我是靠谱客的博主 任性金针菇,最近开发中收集的这篇文章主要介绍c语言实现数据结构中顺序表的源代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

对于很多初学c语言的同学·,虽然都能理解数据结构中的思想,但是不一定能用c一行一行撸出一个完整的代码,我最近也正好在重新看数据结构,所以就把c语言实现数据结构源代码放出来帮助初学者。

#include <stdio.h>
#include <stdlib.h>
#define N 5

struct LNode {
	int data[N];
	int last;
};

typedef struct LNode *List;		//给结构体取一个别名 
struct LNode seqList;

List makeEmpty(List PtrL) {					//对顺序表做初始化或者置为空 
	PtrL = (List) malloc (sizeof(seqList));
	PtrL->last = -1;
	return PtrL;
}

void Insert(List PtrL, int x, int i) {
	if(i < 0 || i > PtrL->last+1) {
		printf("插入位置不合法!");
		return;							//此处对插入的位置做判断,本实例中数组下标从开始。 
	}
	if(PtrL->last == N-1) {
		printf("表已满!");
		return;							//此处判断线性表是否已满 
	}
	for(int j = PtrL->last; j >= i; j--)		//对表中元素做后移操作,给新插入元素腾个位置 
		PtrL->data[j+1] = PtrL->data[j];
		PtrL->last++;
		PtrL->data[i] = x; 
}

int dele(List PtrL, int i, int e) {
	if(i <= 0 || i >= PtrL->last+1) {
		printf("不存在%d个元素",i);
		return -1;						//表示删除元素不存在	
	}
	e = PtrL->data[i-1];
	for(int j = i; j <= PtrL->last; j++) {
		PtrL->data[j-1] = PtrL->data[j];
	} 
	PtrL->last--;
	return e;						//e为了记录被删除元素的值 
}

int find(List PtrL, int e) {
	int i;
	for(i = 0; i <= PtrL->last && e != PtrL->data[i]; i++);
	if(i>= 0 && i <= PtrL->last)
	return i;
	else
	return -1;		//表示查找元素不存在 
} 

void print(List PtrL) {
	for(int i = 0; i <= PtrL->last; i++)
	printf("%d ",PtrL->data[i]);
} 

int main() {
	List list; 
	int a[100], n, m, k, l;
	list = makeEmpty(list);		//初始化下
	printf("请输入插入的个数及插入的元素:");
	scanf("%d", &n);
	for(int i = 0; i < n; i++) {
		scanf("%d", &a[i]);
		Insert(list,a[i],i);		//插入5个元素
	}
	printf("插入元素后:");
	print(list);
	printf("n");
	printf("请输入要查找的元素值:");
	scanf("%d", &m);
	printf("当前元素位于第%d位置。n",find(list,m)+1);
	printf("请输入要删除的元素的位置:");
	scanf("%d", &k);
	l = dele(list,k,l);
	printf("删除后的顺序表为:");
	print(list);
	printf("n");
	printf("删除的元素值为:%d", l);
	return 0;
} 


最后

以上就是任性金针菇为你收集整理的c语言实现数据结构中顺序表的源代码的全部内容,希望文章能够帮你解决c语言实现数据结构中顺序表的源代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(91)

评论列表共有 0 条评论

立即
投稿
返回
顶部