【重回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语言

  • 2010-09-23 11:29
  • 45KB
  • 下载

顺序存储结构线性表基本操作 纯C语言实现

自己把顺序表用C语言写了出来,并小试牛刀,做了一题,将La与Lb合并。 #include #include #define TRUE 1 #define FALSE 0 #define O...
  • D_Fur
  • D_Fur
  • 2012-08-03 13:56
  • 9068

数据结构C语言实现线性表(顺序实现)的初始化与基本操作

#include #include #define LIST_INIT_SIZE 10 /*存储空间初始分配量*/ #define LISTINCREMENT 10 /*存储空间分配增量*/ type...

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

#include #include #include #define initSize 20typedef struct{ int *data; int len,maxsize;...

c语言:顺序表的实现(一) 创建,插入,删除,查找,输出等基本操作实现

#include #include #define LIST_INIT_SIZE 100 #define LIST_INCREMENT 10 using namespace std; struct S...

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

C语言实现顺序表的插入、删除、查找、遍历等基本操作 /*编写完整的程序实现顺序的建立、查找、插入、删除等基本操作*/ #include #include #define LIST_INIT_SIZ...

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

顺序表 定义:如图所示顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。                顺序表的特性: 1.长度固定; 2.存储...

顺序表基本操作-C语言

#include #include #define TRUE   1 #define FALSE  0 #define OK     1 #define ERROR  0 #define ...

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

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

学习笔记---线性表的基本操作---顺序存储(C语言)

#include #include #include #define LIST_INIT_SIZE/*线性表存储空间初始分配量*/ #define LISTINCREMENT/*线性表存储空间...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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