用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...