順序線性表的基本操作
阿新 • • 發佈:2019-01-26
這個程式碼可以對順序線性表進行查詢、刪除、插入、建立等基本操作。
#include<stdio.h>
struct node{
int *List;
int lenth;
};
typedef node *LIST, Lnode;
void PrintList(LIST L);//列印線性表
void CreatList(LIST &L, int n);//建立線性表
int GetElem(LIST L, int i);//查詢給定位置的元素
int FindElem(LIST L, int e);//查詢給定元素
void ListInsert(LIST L, int e, int j);//插入
void ListDelete(LIST L, int j);//刪除給定位置的數
int main()
{
int n, k;
LIST SqList;
CreatList(SqList, 6);
if(k != -1) printf("%d\n\n", GetElem(SqList, 2));
if(k != -1) printf("%d\n\n", FindElem(SqList, 3));
ListDelete(SqList, 4);
ListInsert(SqList, 99, 2);
return 0;
}
void PrintList(LIST L)
{
for(int i = 0; i < L->lenth; i++)
printf("%d ", L->List[i]);
printf("\n\n");
}
void CreatList(LIST &L, int n)
{
int i;
L->List = new int[n];
L->lenth = 0;
for(i = 0; i < n; i++)
L->List[i] = i+1;
L->lenth = i;
PrintList(L);
}
int GetElem(LIST L, int i)
{
if(i < 0 || i >= L->lenth){
printf("輸入錯誤!!\n");
return -1;
}
return L->List[i];
}
int FindElem(LIST L, int e)
{
for(int i = 0; i < L->lenth; i++)
if(L->List[i] == e)
return i;
printf("未找到!!\n");
return -1;
}
void ListInsert(LIST L, int e, int j)
{
for(int i = L->lenth-1; i >= j; i--)
L->List[i+1] = L->List[i];
L->List[j] = e;
L->lenth++;
PrintList(L);
}
void ListDelete(LIST L, int j)//刪除給定位置的數
{
for(int i = j; i < L->lenth-1; i++)
L->List[i] = L->List[i+1];
L->lenth--;
PrintList(L);
}