zoukankan      html  css  js  c++  java
  • 顺序算法

    #include "stdio.h"
    #include "stdlib.h"
    #define MaxSize 100
    
    typedef struct sqlist{
        int data[MaxSize];
        int length;
        }SqList;
    
    void CreateList(SqList *p,int data[],int n);
    int  ListInsert(SqList *p,int i ,int e); 
    void ShowList(SqList *p,int n);
    
    void main(){
        SqList*L;
    int data[6]={34,178,2,88,76,10},n,j;
    //顺序表初始化 
    L=(SqList *)malloc(sizeof(SqList));
    if(!L)
        printf("内存分配失败");
    else
        L->length=0;
    CreateList(L,data,6);
    ShowList(L,6); 
    
    // 插入元素 
    printf("请输入插入值的位置和数值(逗号分隔):");
    scanf("%d,%d",&j,&n);
    n=ListInsert(L,j,n);
    if(n==-1)
       printf("插入位置有问题!
    ");
    else
       ShowList(L,n);
    
    //删除元素 
    printf("请输入删除的位置:");
    scanf("%d",&j);
    n=ListDelete(L,j);
    if(n==-1)
       printf("删除失败!
    ");
    else
       printf("删除的元素为:%d
    ",n);
    ShowList(L,L->length);
    
    //释放空间 
    free(L);
    }
    
    //创建 
    void CreateList(SqList *p,int data[],int n){
        int i;
        for(i=0;i<n;i++)
        p->data[i]=data[i];
        p->length=n;
    } 
     
    //插入 
    int  ListInsert(SqList *p,int i ,int e){
    int j;
    if(i<1|| i>p->length+1)
    return -1;
    i--;//形象i是逻辑位序 
    for(j=p->length ; j>i ; j--)
    p->data[j]=p->data[j-1];
    p->data[i]=e;
    p->length++;
    return p->length;
    } 
     
    //显示 
    void ShowList(SqList *p,int n){
        int j;
        for(j=0;j<n;j++)
        printf("%d",p->data[j]);
        printf("	顺序表长度为:%d
    ",p->length);
    }
    
    //删除
    int ListDelete(SqList *L,int i){
        int k;int x;
        if(L->length==0)
        {
           printf("此表为空表,无法删除!");
           return -1;    
        }
        else if(i<i || i>L->length) 
        {
           printf("删除的位置有误!");
           return -1;    
        }
        else{
            x=L->data[i-1];
            for(k=i;k<L->length;k++)
            L->data[k-1]=L->data[k];
            L->length--;
            return x;
        }
    } 
  • 相关阅读:
    python面试的100题(2)
    面试题目和地址
    python面试的100题(1)
    no module named系列问题解决
    ubuntu16.04无法打开终端
    Reinforcement Learning,微信公众号:DRL学习
    Java中的I/O操作File
    Java中的Date时间转换【SimpleDateFormat (parse和format)】和Calendar日历表
    重写equals方法
    Java中栈,堆,常量池的简单理解
  • 原文地址:https://www.cnblogs.com/LLiRo/p/12604912.html
Copyright © 2011-2022 走看看