【重回C】c语言之顺序表的部分基本操作

原创 2015年11月17日 23:15:58
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
typedef struct
{
	int data[MAXSIZE];
	int last;
}SeqList;  
void insert_list(SeqList *l,int pos,int data)
{
	int i;
	if(l->last>MAXSIZE-1) 
				{
					printf("空间溢出!");
				}
				else if(pos<1||pos>l->last+2)//插入前表长为last+1,插入后则为last+2 
				{
					printf("插入位置非法!");
				}
				else{
					for(i=l->last;i>=pos-1;i--)
					{
						l->data[i+1]=l->data[i];
					}
					l->data[pos-1]=data;
					l->last++;
				}
	
 } 
 void delete_list(SeqList *l,int pos)
 {
 		for(int i=pos;i<=l->last;i++)
					{
						l->data[i-1]=l->data[i];
					}
					l->last-=1;
  } 
int main(void)
{
	int choice,num,data,pos,i;
	SeqList l;
	while(true)
	{
		printf("  线性操作表练习\n");
		printf("1:创建一个数据表\n");
		printf("2:插入数据\n");
		printf("3:删除数据\n");
		printf("4:打印数据表中元素\n");
		printf("5:退出程序\n");
		printf("请输入选项:") ;
		scanf("%d",&choice);
		switch(choice)
		{
			case 1:
				printf("请输入你要创建的元素个数:");
				scanf("%d",&num);
				if(num>MAXSIZE)
				{
					printf("超出个数!");
					break;
				}
				printf("录入数据开始:");
				for(i=0;i<num;i++)
				{
					scanf("%d",&l.data[i]);
				}
				l.last=num-1;
				break;
			case 2:
				printf("请输入插入的元素值和位置:");
				scanf("%d %d",&data,&pos);
				insert_list(&l,pos,data);
				break; 
			case 3:
				printf("请输入你要删除元素所处的位置:");
				scanf("%d",&pos);
				if(pos<1||pos>l.last+1)
				{
					printf("输入的位置无效");
					break;
				}
				else
				{
					delete_list(&l,pos);
				}
				break;	
			case 4:
				printf("数据表为:");
				for(i=0;i<l.last+1;i++)
				{
					printf("%d ",l.data[i]);
				}
				printf("\n元素的个数为:%d ",l.last+1);
				break;	
			case 5:
				return 0;
				break;	
			default: 
				printf("没有这个选项!");
				break;		
		} 
	} 
} 
//由于很久没有接触过c了哈,会出现不少错误,本代码仅供参考 

顺序表的实现(C语言)

#include #include #define MAXSIZE 100 struct List { int element[MAXSIZE]; //链表中最大节点数 int len; ...
  • yangshuangtao
  • yangshuangtao
  • 2015年04月09日 08:29
  • 3782

C语言实现顺序表的基本操作

数据结构老师给了几个接口,叫我们自己去实现顺序表的功能,感想就是顺序表实现起来比链表容易,但是还是要花费挺长的时间来构思,这一次的收获还是挺多的。...
  • OnlyLove_KD
  • OnlyLove_KD
  • 2016年09月12日 09:06
  • 6208

C语言——静态顺序表常见操作

不用多说,直接贴代码 list.h 文件#ifndef __LIST_H__ #define __LIST_H__ #include #include #include #define Max_...
  • qq_36782456
  • qq_36782456
  • 2017年05月01日 13:25
  • 276

C语言实现顺序表的插入、删除、查找、遍历等基本操作

C语言实现顺序表的插入、删除、查找、遍历等基本操作 /*编写完整的程序实现顺序的建立、查找、插入、删除等基本操作*/ #include #include #define LIST_INIT_SIZ...
  • u012810362
  • u012810362
  • 2016年03月27日 11:34
  • 5679

C语言顺序表的基本操作

#include #include #include //调用exit();函数 #define N 10 typedef struct List { int a[N]; int l...
  • ZSS1753936255
  • ZSS1753936255
  • 2016年10月23日 21:55
  • 494

C语言---从指针到二重指针(上)

江湖传言:得指针者得C语言。不知道这句话是从什么时候开始流传的,不过这也不重要,重要的是我们隐约能从中感受到指针在C语言中的重要性。对于初学C语言的人来说,指针可能是大多数人心中的痛。笔者当年学C语言...
  • flysall_all
  • flysall_all
  • 2017年03月18日 09:48
  • 248

c语言之顺序表

1.什么是顺序存储结构?
  • ya_1249463314
  • ya_1249463314
  • 2017年02月15日 21:05
  • 365

(译)追本溯源 —— C之精神

声明:本文原刊于程序员杂志第10期,略有删节,非经杂志社和作者书面许可,不得转载。原文作者:Greg Colvin http://www.artima.com/cppsource/spiritofc....
  • SeSe
  • SeSe
  • 2004年11月10日 14:44
  • 3045

C语言之比较法

           C语言之比较法                                                                         ...
  • qq_32046111
  • qq_32046111
  • 2016年01月26日 12:22
  • 463

"C语言之美" -- 变量名

C语言是一种优美的语言。如果你不能体会到这种语言的魅力,那么你将无法真正爱上这门语言。 C语言是一种面向过程的语言,这也就决定它的优点和不可避免的缺点。在嵌入式领域中,是把C语言作为开发语言。这是为什...
  • zhengqijun_
  • zhengqijun_
  • 2016年08月11日 15:53
  • 315
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【重回C】c语言之顺序表的部分基本操作
举报原因:
原因补充:

(最多只允许输入30个字)