用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

/在计算机上先输入一串正整数的序列。请编写一个程序,首先用顺序表存储该序列。

2012-10-27 作者: 上帝是男孩举报

[c]代码库

//在计算机上先输入一串正整数的序列。请编写一个程序,首先用顺序表存储该序列。
//然后执行删除操作,即先从顺序表中找出最小的结点,删除它。然后再在剩余的表
//中,找出最小的结点,再删除之。直至表空为止。

#include"stdio.h"
#include"stdlib.h"
#include"test1.h"
#include"string.h"
#define Max 10
int main()
{
	int i,pos,count;
	char str[Max],sum=0;
	SqList *L;
	L=CreateSqList();     //创建一个指针
	InitSqList(L);   //初始化该指针
	printf("输入一串正整数:\n"); 
	gets(str);    //输入一段正整数
	count=strlen(str);       //记数
	for(i=0;i<count;i++)
	{
		InsertSqList(L,str[i]);          //将正整数插入线性表中
	}
	printf("输出线性表中的元素:\n");
	Display(L);          //输出线性表
	printf("进行删除操作!\n");
	for(i=0;i<count;i++)
	{
		pos=MinSqList(L)+1;     //找到最小结点的位置

		printf("最小结点为:\n");
        DeleteSqList(L,pos,&sum);      //删除指定结点
		printf("%c\n",sum);
	}
	return 0;
}




///////////////////////////////////////////
/*      test1.cpp                        */
/*                                       */
/*    filename:test1.cpp                 */
/*    description:test1头文件的实现文件  */
/*    designer:zhu jian                  */
/*    data:12-10-24                      */
////////////////////////////////////////////



#include"stdio.h"
#include"stdlib.h"
#include"test1.h"


SqList *CreateSqList(void)//创建一个线性表
{
	SqList *temp;
    temp=(SqList *)malloc(sizeof(SqList));
	if(!temp)
		return NULL;
	
	temp->length=0;
	return temp;
}

void InitSqList(SqList *L)//初始化线性表
{
	SqList *p;
    p=L;
	if(!L)
		return ;

	p->data[0]=0;
	p->length=0;
}

void InsertSqList(SqList *L,elemtype e)//往线性表中插入一个数值
{
	SqList *p;
    p=L;
	if(!L)
		return ;
	else
	{
		p->data[p->length]=e;
		p->length++;
	}
}

void Display(SqList *L)//输出线性表中的元素
{
	int i=1;
	SqList *p;
	p=L;
	if(!L)
	{
		printf("线性表为空!\n");
		return ;
	}
	while(i<=p->length)
	{
		printf("第%d个元素是:\n",i);
		printf("%c\n",p->data[i-1]);
		i++;
	}
}

unsigned int MinSqList(SqList *L)//在线性表中找到最小的值的结点
{
	int i,pos=0;
	SqList *p;
	p=L;
	if(!L)
		return ERROR;
    for(i=1;i<p->length;i++)
	{
		if(p->data[pos]>p->data[i])
			pos=i;
	}
	
	return pos;
}

unsigned int DeleteSqList(SqList *L,int pos,elemtype *e)//删除指定位置的结点
{
	int i;
	SqList *p;
	p=L;
	if(!L)
		return ERROR;
	else if(pos<1 || pos>(p->length))
	{
		printf("参数出错!\n");
		return ERROR;
	}
	else
	{
		*e=p->data[pos-1];
		for(i=pos;i<p->length;i++)
			p->data[i-1]=p->data[i];
		p->length--;
		return OK;
	}
}




///////////////////////////////////
/*      test1.h                  */
/*                               */
/*    filename:test1.h           */
/*    description:test1的头文件  */
/*    designer:zhu jian          */
/*    data:12-10-24              */
//////////////////////////////////


#ifndef _DATA_STRUCTURE_TEST1_H_
#define _DATA_STRUCTURE_TEST1_H_

#ifndef ERROR
#define ERROR 0
#endif

#ifndef OK
#define OK 1
#endif

#ifndef NULL
#define NULL 0
#endif


#define Maxsize 10//定义数据量最大为100个
typedef char elemtype;//用elemtype代替char

typedef struct{//顺序表的存储结构
	elemtype data[Maxsize];
	int length;
}SqList;


SqList *CreateSqList(void);//创建一个线性表

void InitSqList(SqList *L);//初始化线性表

void InsertSqList(SqList *L,elemtype e);//往线性表中插入一个数值

void Display(SqList *L);//输出线性表中的元素

unsigned int MinSqList(SqList *L);//在线性表中找到最小的值的结点

unsigned int DeleteSqList(SqList *L,int pos,elemtype *e);//删除指定位置的结点


#endif



网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...