數組實現線性表
#include "stdio.h"typedef struct{int data[20];int length;}Sqlist;//返回下標int LocateElem(Sqlist L,int x){int i;for(i=1;i<=L.length;i++){if(x<L.data[i]){return i;}}return i;}//插入元素的演算法void insert(Sqlist &L,int x){int p,i;p=LocateElem(L,x);for(i=L.length;i>=p;i--){L.data[i+1]=L.data[i];}L.data[p]=x;++(L.length);}//尋找第一個元素值為x的元素int chazhao(Sqlist L,int x){for(int i=1;i<=L.length;i++)if(x==L.data[i])return i;return 0;}//在順序表第p個位置插入新的元素e,失敗返回0int chaRu(Sqlist &L,int p,int e){if(p>L.length+1||p<1)return 0;else{for(int i=L.length;i>=p;i--){L.data[i+1]=L.data[i];}L.data[p]=e;L.length++;return 1;}}//刪除順序表下標為P的元素,成功返回1,失敗返回0;int shanChu(Sqlist &L,int p){if(p<1||p>L.length)return 0;else{for(int i=p;i<L.length;i++)L.data[i]=L.data[i+1];L.length--;return 1;}}void main(){Sqlist L;L.length=10;for(int i=1;i<=L.length;i++){L.data[i]=i;}for(int i=1;i<=L.length;i++){printf("%d ",L.data[i]);}insert(L,5);printf("\n");for(int i=1;i<=L.length;i++){printf("%d ",L.data[i]);}int p;p=chazhao(L,7);printf("\n%d ",p);chaRu(L,2,30);for(int i=1;i<=L.length;i++){printf("%d ",L.data[i]);} shanChu(L,2);printf("\n");for(int i=1;i<=L.length;i++){printf("%d ",L.data[i]);}}