zoukankan      html  css  js  c++  java
  • 数据结构-顺序表

      1 #include <iostream>
      2 
      3 using namespace std;
      4 
      5 #define maxSize 20
      6 typedef struct
      7 {
      8     int data[maxSize];
      9     int length;
     10 }Sqlist;
     11 
     12 void InitList(Sqlist &L)
     13 {//初始化
     14     L.length=0;
     15 }
     16 
     17 int GetElem(Sqlist L,int p,int &e)
     18 {//查找指定位置的元素
     19     if(p<1||p>L.length)
     20         return 0;
     21     e=L.data[p];
     22     return 1;
     23 }
     24 
     25 int LocateElem(Sqlist L,int e)
     26 {
     27     int i;
     28     for(i=1;i<=L.length;++i)
     29         if(e==L.data[i])
     30         return i;
     31     return 0;
     32 }
     33 
     34 int Insert(Sqlist &L,int p,int e)
     35 {
     36     int i;
     37     if(p<1||p>L.length+1||L.length==maxSize-1)
     38         return 0;
     39     for(i=L.length;i>=p;--i)
     40         L.data[i+1]=L.data[i];
     41     L.data[p]=e;
     42     ++(L.length);
     43     return 1;
     44 }
     45 
     46 int Delete(Sqlist &L,int p,int &e)
     47 {
     48     int i;
     49     if(p<1||p>L.length)
     50         return 0;
     51     e=L.data[p];
     52     for(i=p;i<L.length;++i)
     53         L.data[i]=L.data[i+1];
     54     --(L.length);
     55     return 1;
     56 }
     57 
     58 void Print(Sqlist L)
     59 {
     60     if(L.length<1)
     61         cout<<"顺序表中没有元素!"<<endl;
     62     else
     63     {
     64         for(int i=1;i<=L.length;++i)
     65             cout<<"  "<<i<<"  ";
     66     }
     67     return;
     68 }
     69 
     70 /*
     71 int LocateElem(Sqlist L,int x)
     72 {//返回第一个比x大的元素的位置
     73     int i;
     74     for(i=1;i<=L.length;++i)
     75         if(x<L.data[i])
     76         {
     77             return i;
     78         }
     79     return i;//失败则返回指示表尾
     80 }*/
     81 
     82 //顺序表的相关操作
     83 int main()
     84 {
     85     int e,p;
     86     int x=7;
     87     Sqlist L;
     88     InitList(L);
     89     for(int i=1;i<10;++i)
     90         Insert(L,i,i);
     91     Print(L);
     92     cout<<"
    -----------------------------"<<endl;
     93     Delete(L,4,e);
     94     cout<<"
    要删除的第4个位置元素为:"<<e<<endl;
     95     Print(L);
     96     cout<<"
    -----------------------------"<<endl;
     97     p=LocateElem(L,x);
     98     cout<<"
    元素7的位置为:"<<p<<endl;
     99     cout<<"
    -----------------------------"<<endl;
    100 
    101     GetElem(L,3,e);
    102     cout<<"
    第3个位置的元素为:"<<e<<endl;
    103     cout<<"
    -----------------------------"<<endl;
    104     return 0;
    105 }
  • 相关阅读:
    Unity之串口通信(基于三姿态传感器)
    Unity3d win7协议多点触控
    大大的蛋项目 第二篇 第三关
    大大的蛋项目
    Unity3d 调用C++的DLL
    有梦想的小鸟
    【Unity3D插件】NGUI屏幕自适应 .
    【Unity3d】使GUI适应屏幕分辨率
    unity自动保存项目
    BloomFilter——大规模数据处理利器
  • 原文地址:https://www.cnblogs.com/Xbert/p/5085056.html
Copyright © 2011-2022 走看看