• 线性表


     

      1 #include<iostream>
      2 #define Max 50
      3 using namespace std;
      4 typedef char ElemType;
      5 
      6 typedef struct
      7 {
      8     ElemType data[Max];
      9     int length;
     10 }sqlist;
     11 
     12 //1.初始化线性表
     13 void initsqlist(sqlist *&L)
     14 {
     15     L=new sqlist;
     16     L->length=0;
     17 }     
     18 //2.销毁线性表
     19 void destroylist(sqlist *&L)
     20 {
     21     delete L;
     22 } 
     23 //3.判断线性表是否为空表
     24 bool listempty(sqlist *L)
     25 {
     26     if(0==L->length)
     27         return true;
     28     else
     29         return false;
     30 } 
     31 //4.求线性表的长度
     32 int listlength(sqlist *L)
     33 {
     34     return (L->length);
     35 } 
     36 //5.输出线性表
     37 void displist(sqlist *L)
     38 {
     39     if(listempty(L))
     40         return;
     41     for(int i=0;i<L->length;i++)
     42         cout<<L->data[i]<<"		";
     43     cout<<endl;    
     44 } 
     45 //6.求某个数据元素值
     46 bool getelem(sqlist *L,int i,ElemType &e) 
     47 {
     48     if(i<1 || i>L->length)
     49         return false;
     50     e=L->data[i-1];
     51         return true;            
     52 }
     53 //7.按元素值查找
     54 int locateelem(sqlist *L,ElemType e) 
     55 {
     56     int i=0;
     57     while(i<L->length && L->data[i]!=e)    
     58         i++;
     59     if(i>=L->length)
     60         return 0;
     61     else
     62         return i+1;    
     63 }
     64 //8.插入数据 
     65 bool listInsert(sqlist *&L,int i,ElemType e)
     66 {
     67     if(i<1 || i>L->length+1)  //注意这里 length要+1 极易出错
     68         return false;
     69     i--;
     70     for(int j=L->length;j>i;j--)
     71         L->data[j]=L->data[j-1];
     72     L->data[i]=e;
     73     L->length++;
     74     return true;    
     75 }
     76 //9.删除数据
     77 bool listdelete(sqlist *L,int i,ElemType &e)
     78 {
     79     if(i<1 || i>L->length)
     80         return false;
     81     i--;
     82     e=L->data[i];
     83     for(int j=i;j<L->length-1;j++)
     84         L->data[j]=L->data[j+1];
     85     L->length--;
     86     return true;        
     87 } 
     88 
     89 int main()
     90 {
     91     sqlist *L1;
     92     cout<<"1.初始化顺序表:";initsqlist(L1);
     93     
     94     cout<<"
    
    2.插入数据:"<<endl;
     95     ElemType a[5]={'a','b','c','d','e'};
     96         for(int i=0;i<5;i++)        
     97             if(!listInsert(L1,i+1,a[i]))
     98                 cout<<a[i]<<"插入失败";
     99     
    100     cout<<"
    3.输出顺序表:";displist(L1);
    101     
    102     cout<<"
    4.输出顺序表的长度:"<<listlength(L1);    
    103     
    104     cout<<"
    
    5.判断顺序表是否为空:";
    105     if(listempty(L1))
    106         cout<<"	该顺序表为空";
    107     else
    108         cout<<"	该顺序表不为空";
    109         
    110     int k;
    111     ElemType temp;    
    112     cout<<"
    
    6.请选择要输出第几个元素:";cin>>k;    
    113     if(getelem(L1,k,temp))
    114         cout<<"
    		取值成功,该顺序表的第"<<k<<"个元素为:"<<temp;
    115     else
    116         cout<<"
    		取值失败,你输入的位置"<<k<<"越界"; 
    117         
    118         
    119     cout<<"
    
    7.请选择在哪个位置上插入你想要的元素:" ;cin>>k;
    120     cout<<"
    8.请输入你想要插入的元素:" ;cin>>temp;
    121     listInsert(L1,k,temp);
    122     cout<<"
    9.输出新的顺序表:";
    123     displist(L1);
    124     
    125     cout<<"
    10.请选择你想要删除的元素的位置:";cin>>k;
    126     if(listdelete(L1,k,temp))
    127         cout<<"
    		删除成功!删除的元素是:"<<temp<<endl;
    128     else 
    129         cout<<"
    		删除失败"<<endl;
    130     
    131     cout<<"
    11.输出新的顺序表:";
    132     displist(L1);
    133     
    134     cout<<"
    12.释放顺序表";
    135     destroylist(L1);
    136     
    137 }

     

    你數過天上的星星嗎
  • 相关阅读:
    javaScript 匿名函数 理解
    javaScript this理解
    javaScript原型链理解
    Django学习笔记
    python mysql应用
    华为OBS上传,与modelart添加标签--python
    pyhton 定时任务
    制作滑动验证码(未完待续)
    测试扫描支付功能
    js 易错点(未完待续)
  • 原文地址:https://www.cnblogs.com/Myrecord-7/p/12493456.html
Copyright © 2020-2023  润新知