C語言順序存儲(chǔ)結(jié)構(gòu)
C語言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域以及遞歸功能的過程式語言。下面是小編分享的C語言順序存儲(chǔ)結(jié)構(gòu),一起來看一下吧。
1、 什么是順序存儲(chǔ)結(jié)構(gòu)?
用一段地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表的數(shù)據(jù)元素。
2、線性表的順序存儲(chǔ)結(jié)構(gòu)
#include<stdio.h>
#include<stdlib.h>
#define Max 80 /pic/p>
#define Increment 10 /pic/p>
typedef struct
{
int *elem; /pic/p>
int length; /pic/p>
int size; /pic/p>
}SqList;
3、順序表的初始化操作是為順序表分配一個(gè)預(yù)定大小的數(shù)組空間,并將順序表的長度設(shè)為0。
<一>int InitList(SqList &L)
{
L.elem=(int *)malloc(Max*sizeof(int));
if(!L.elem)
return;/pic/pic/p>
L.length=0; /pic/p>
L.size=Max; /pic/p>
return Ok;
}
<二>int CreatList(SqList &L)
{
L.elem=(int *)malloc(Max*sizeof(int));
if(!L.emle)
return;/pic/p>
L.length=0;
L.size=Max;
printf("請(qǐng)輸入表的長度:");
scanf("%d",&L.length);
printf("請(qǐng)輸入%d個(gè)數(shù):",L.length);
for(i=0;i<L.length;i++)
scanf("%d",&L.elem[i]);
}
4.獲取元素操作:將線性表中的第i個(gè)位置元素值位置返回
int GetElem(SqList &L,int i,int e)
{
/pic/p>
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) /pic/p>
{
_new=(int)malloc(L.elem,(L.length+Increment)*sizeof(int));
if(!_new) /pic/p>
return; /pic/p>
L.elem=_new; /pic/p>
L.size=L.size+Increment; /pic/p>
}
q=&(L.elem[i-1]); /pic/p>
for(p=&(L.elem(L.length-1));p>=q;–p) /pic/p>
*q=e; /pic/p>
++L.length; /pic/p>
return OK;
}
6、刪除元素```
int ListDelete(SqList &L,int i,int *e)
{
int k;
if(L.length==0) /pic/p>
return ERROR;
if(i<1||i>L.length) /pic/p>
return ERROR;
*e=L.elem[i-1];
if(i<L.length) /pic/p>
{
for(k=i;k<L.length;k++)
L.elem[k-1]=L.elem[k];
}
L.length--
return OK;
}
【C語言順序存儲(chǔ)結(jié)構(gòu)】相關(guān)文章:
C語言順序結(jié)構(gòu)11-08
C語言順序結(jié)構(gòu)知識(shí)歸納01-08
C語言順序結(jié)構(gòu)的設(shè)計(jì)實(shí)例11-29
C語言程序的存儲(chǔ)區(qū)域12-18
C語言變量存儲(chǔ)布局01-05
C語言的結(jié)構(gòu)03-01
C語言結(jié)構(gòu)體定義12-14
- 相關(guān)推薦