码迷,mamicode.com
首页 > 其他好文 > 详细

4、链表(顺序表)

时间:2018-08-07 15:11:10      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:follow   查找   href   nbsp   bsp   http   顺序表   插入   主函数   

  • 顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。

如果每次只加一个值进入表中,用数组就行了,如果要加入多个值,就可以使用结构体。

顺序表一般有这几个操作:

1、输入数据

2、查找数据

3、插入数据

4、删除数据

【实例】

 

  1 #include <iostream>
  2 #include <cstdlib>
  3 using namespace std;
  4 int Error = 0;
  5  
  6 #define MAXLISTLEN 100
  7 int ListLen = 0;
  8 int SeqList[MAXLISTLEN + 1];
  9 //顺序表查找
 10 int SearchSeqList(int i)
 11 {
 12     if ((i > ListLen) || (i < 1) || (ListLen == 0))
 13     {
 14          Error = -1;
 15          return (-1);    //查找出错返回
 16     }
 17     else
 18     {
 19          return SeqList[i];    //返回指定位置的元素值
 20     }
 21 }
 22 //顺序表的插入
 23  void InsertSeqList(int NewItem, int i)
 24 {
 25     int j;
 26     if ((i > ListLen + 1) || (i < 1) || (ListLen == MAXLISTLEN))
 27     {
 28         Error = -2;    //插入出错返回
 29         cout << "插入出错啦!!!";
 30     }
 31     else
 32     {
 33         for (j = ListLen; j >= i; j--)    //从后往前移
 34         {
 35             SeqList[j + 1] = SeqList[j];
 36         }
 37         SeqList[i] = NewItem;        //插入新元素
 38         ListLen = ListLen + 1;        //表长加一
 39     }
 40 }
 41  //顺序表指定位置数据的删除
 42 void DeleteSeqList(int i)
 43 {
 44     int j;
 45     if ((i > ListLen) || (i < 1) || (ListLen == 0))
 46     {
 47         Error = -3;    //删除出错返回
 48         cout << "删除出错啦!!!";
 49     }
 50     else
 51     {
 52         for (j = i; j < ListLen; j++)    //从前往后移
 53         {
 54             SeqList[j] = SeqList[j + 1];
 55         }
 56         ListLen = ListLen - 1;        //表长减一
 57     }
 58 }
 59  //顺序表显示
 60  void ShowSeqList()
 61 {
 62     int i;
 63     cout << "The list : ";
 64     for (i = 1; i <= ListLen; i++)
 65     {
 66         cout << SeqList[i] << " ";    //逐个显示数据元素
 67     }
 68     cout << endl;            //换行
 69     
 70 }
 71  //主函数
 72 int main(int argc, char * argv[])
 73 {
 74     int r[MAXLISTLEN], i, SearchPos, NewPos, NewItem, DelPos, switch_on;
 75     cout << "Please input the ListLen : ";
 76     cin >> ListLen;    //输入样本数目(表长)
 77     //创建顺序表
 78     for (i = 1; i <= ListLen; i++)
 79     {
 80         cout << "Please input No." << i << "Item : ";
 81         cin >> SeqList[i];
 82     }
 83     ShowSeqList();    //显示顺序表
 84     while (true)
 85     {
 86         cout << "请输入你想要的操作序号:\n" << "1、查找位置" << "\t2、插入数据" << "\t3、删除数据\t";
 87         cin >> switch_on;
 88         switch (switch_on)
 89         {
 90         case 1:
 91             cout << "Please input the search pos : ";
 92             cin >> SearchPos;    //输入查找位置
 93             cout << "Your Searched Item is : " << SearchSeqList(SearchPos) << endl;    //输出查找的数据元素值
 94             break;
 95         case 2:
 96             cout << "Please input the NewPos where you want to insert : ";
 97             cin >> NewPos;        //插入位置输入
 98             cout << "Please input the NewItem what you want to insert : ";
 99             cin >> NewItem;    //插入元素输入
100             InsertSeqList(NewItem, NewPos);    //新数据插入顺序表中
101             cout << "After insert : ";
102             ShowSeqList();        //插入数据后,输出新的顺序表
103             break;
104         case 3:
105             cout << "Please input the DelPos where you want to delete : ";
106             cin >> DelPos;        //输入删除元素位置
107             DeleteSeqList(DelPos);    //按位置删除数据
108             cout << "After delete : ";
109             ShowSeqList();
110             break;
111         default:
112             break;
113         }
114     }
115     if (Error < 0) cout << "Error" << Error << endl;
116     system("pause");
117     return 0;
118 }

 

4、链表(顺序表)

标签:follow   查找   href   nbsp   bsp   http   顺序表   插入   主函数   

原文地址:https://www.cnblogs.com/Long-w/p/9436668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!