<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>
            C語言

            C語言順序存儲結構

            時間:2025-01-17 00:30:49 C語言 我要投稿
            • 相關推薦

            C語言順序存儲結構

              C語言是一個有結構化程序設計、具有變量作用域以及遞歸功能的過程式語言。下面是小編分享的C語言順序存儲結構,一起來看一下吧。

              1、 什么是順序存儲結構?

              用一段地址連續的存儲單元依次存儲線性表的數據元素。

              2、線性表的順序存儲結構

              #include<stdio.h>

              #include<stdlib.h>

              #define Max 80 //存儲空間初始分配量

              #define Increment 10  //存儲空間分配增量

              typedef struct

              {

              int *elem;  // 存儲空間基地址,此處為int型,視情況而定

              int length;  // 元素表當前長度

              int size;  //當親分配的存儲容量

              }SqList;

              3、順序表的初始化操作是為順序表分配一個預定大小的數組空間,并將順序表的長度設為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個數:",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;

              }

            【C語言順序存儲結構】相關文章:

            C語言順序結構07-10

            C語言順序結構知識歸納01-08

            C語言順序結構的設計實例04-25

            C語言程序的存儲區域04-02

            C語言變量存儲布局07-05

            C語言的結構03-01

            C語言存儲類入門學習03-18

            C語言循環結構04-30

            C語言循環結構的嵌套06-18

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看