最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言線性表順序存儲結(jié)構(gòu)實例詳解

 更新時間:2017年06月26日 10:00:10   投稿:lqh  
這篇文章主要介紹了C語言線性表順序存儲結(jié)構(gòu)實例詳解的相關(guān)資料,需要的朋友可以參考下

C語言線性表順序存儲結(jié)構(gòu)實例詳解

1、 什么是順序存儲結(jié)構(gòu)?

用一段地址連續(xù)的存儲單元依次存儲線性表的數(shù)據(jù)元素。

2、線性表的順序存儲結(jié)構(gòu)

#include<stdio.h>
#include<stdlib.h>
#define Max 80 //存儲空間初始分配量 
#define Increment 10  //存儲空間分配增量

typedef struct
{
  int *elem;  // 存儲空間基地址,此處為int型,視情況而定 
  int length;  // 元素表當前長度 
  int size;  //當親分配的存儲容量 
}SqList; 

3、順序表的初始化操作是為順序表分配一個預定大小的數(shù)組空間,并將順序表的長度設為0。

<一>int InitList(SqList &L)
{
  L.elem=(int *)malloc(Max*sizeof(int));
  if(!L.elem)
    return;//exit(0); //存儲分配失敗
  L.length=0;  //空表長度為0
  L.size=Max;  //初始存儲容量
  return Ok;
} 
<二>int CreatList(SqList &L)
{
  L.elem=(int *)malloc(Max*sizeof(int));
  if(!L.emle)
    return;//exit(0);
  L.length=0;
  L.size=Max;
  printf("請輸入表的長度:");
  scanf("%d",&L.length);
  printf("請輸入%d個數(shù):",L.length);
  for(i=0;i<L.length;i++)
  scanf("%d",&L.elem[i]);
}

4.獲取元素操作:將線性表中的第i個位置元素值位置返回

int GetElem(SqList &L,int i,int e) 
{

  // 1 <= i <= L.length 
  if( i <1 || i > L.length)
    return ERROR;
  *e=L.elem[i-1];
  return Ok;
}

5線性表的插入操作

“ 
int Insert(SqList &L) 
{ 
int *_new; 
int i; 
int e; 
printf(“輸入要插入的位置及其元素:”); 
scanf(“%d %d”,&i,&e); 
if(i<1||i>L.length) 
{ 
printf(“插入的位置不合法!”); 
return ERROR; 
} 
if(L.length>=L.size) //當前空間已滿,增加分配 
{ 
_new=(int)malloc(L.elem,(L.length+Increment)*sizeof(int)); 
if(!_new) //存儲分配失敗 
return; //exit(0); 
L.elem=_new; //新基址 
L.size=L.size+Increment; //增加存儲容量 
} 
q=&(L.elem[i-1]); //q為插入的位置 
for(p=&(L.elem(L.length-1));p>=q;–p) //插入后元素右移 
*q=e; //插入e 
++L.length; //長度加一 
return OK; 
}

6、刪除元素```

int ListDelete(SqList &L,int i,int *e)
{
  int k;
  if(L.length==0) //線性表為空 
    return ERROR;
  if(i<1||i>L.length) //插入不正確 
    return ERROR;
  *e=L.elem[i-1];
  if(i<L.length) //如果插入不是最后的位置 
  {
    for(k=i;k<L.length;k++)
      L.elem[k-1]=L.elem[k];
  }
  L.length--
  return OK;
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • QT實現(xiàn)串口通信的完整步驟

    QT實現(xiàn)串口通信的完整步驟

    如果用qt寫程序作為上位機,然后通過和usb和下位機通信的時候,就需要用到qt中的串口通信了,下面這篇文章主要給大家介紹了關(guān)于QT實現(xiàn)串口通信的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • C++開發(fā)之PugiXML庫基礎(chǔ)用法示例詳解

    C++開發(fā)之PugiXML庫基礎(chǔ)用法示例詳解

    PugiXML庫是一個功能強大、簡單易用的C++ XML解析庫,它提供了一組方便的函數(shù)來解析、創(chuàng)建和修改XML文檔,本文介紹了如何使用PugiXML庫來解析、創(chuàng)建和修改XML文檔,以及如何處理錯誤和異常,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • C++ boost::asio編程-同步TCP詳解及實例代碼

    C++ boost::asio編程-同步TCP詳解及實例代碼

    這篇文章主要介紹了C++ boost::asio編程-同步TCP詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • C++實現(xiàn)動態(tài)順序表(vector)

    C++實現(xiàn)動態(tài)順序表(vector)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)動態(tài)順序表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • VC++中內(nèi)存對齊實例教程

    VC++中內(nèi)存對齊實例教程

    這篇文章主要介紹了VC++中內(nèi)存對齊的實現(xiàn)方法,具有很高的實用價值,需要的朋友可以參考下
    2014-08-08
  • C/C++函數(shù)調(diào)用的幾種方式總結(jié)

    C/C++函數(shù)調(diào)用的幾種方式總結(jié)

    本篇文章主要是對C/C++函數(shù)調(diào)用的幾種方式進行了詳細的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • 深入淺析C++的new和delete

    深入淺析C++的new和delete

    new和delete既是C++中的關(guān)鍵字也是一種特殊的運算符。這篇文章主要介紹了C++的new和delete詳解,需要的朋友可以參考下
    2018-02-02
  • 對比C語言中memccpy()函數(shù)和memcpy()函數(shù)的用法

    對比C語言中memccpy()函數(shù)和memcpy()函數(shù)的用法

    這篇文章主要介紹了對比C語言中memccpy()函數(shù)和memcpy()函數(shù)的用法,二者都是用于復制內(nèi)存內(nèi)容,注意區(qū)別,需要的朋友可以參考下
    2015-08-08
  • 實現(xiàn)C語言常用字符串庫函數(shù)

    實現(xiàn)C語言常用字符串庫函數(shù)

    這篇文章主要為大家介紹了如何實現(xiàn)C語言常用字符串庫函數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • c++ cin 作為while條件(詳解)

    c++ cin 作為while條件(詳解)

    下面小編就為大家?guī)硪黄猚++ cin 作為while條件(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論

内江市| 义乌市| 鄄城县| 舟曲县| 宁海县| 通许县| 宁波市| 龙江县| 新晃| 崇信县| 枣强县| 奉化市| 东乌| 赤水市| 抚宁县| 海淀区| 隆尧县| 克拉玛依市| 普兰县| 陕西省| 久治县| 普格县| 沂源县| 墨江| 夏邑县| 襄城县| 黄浦区| 通化县| 宜川县| 黔江区| 荣成市| 温泉县| 化州市| 霍林郭勒市| 盐池县| 江都市| 织金县| 泰兴市| 淮阳县| 开远市| 镇江市|