1. 程式人生 > >順序線性表的基本操作

順序線性表的基本操作

  這個程式碼可以對順序線性表進行查詢、刪除、插入、建立等基本操作。

#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); }