編寫函數FindList(L,x)查找順序表中的值為x的數據并返回索引,如果沒找到則返回-1
#include "stdafx.h"#include "SeqList.h"int main(){ SeqList myList ; ListInitiate(&myList);//初始化順序表,長度為0 for (int i = 0; i < 10; i++) {//賦初值 ListInerst(&myList, i, i + 1); SeqList.h下載地址:SeqList.h頭文件SeqList.h源碼:
#pragma once#include "stdio.h"#define MaxSize 100typedef int DataType;typedef struct { DataType list[MaxSize]; int size;}SeqList;void ListInitiate(SeqList *L) {//初始化順序表 L->size = 0;}int ListLength(SeqList L) {//返回順序表長度 return L.size;}int ListInerst(SeqList *L, int i, DataType x) {//插入元素 int j; if (L->size >= MaxSize) { printf("順序表已滿無法插入!"); return -1; } else if (i<0 || i>L->size) { printf("輸入參數有誤!"); return -1; } else { for (int j = L->size; j > i; j--) L->list[j] = L->list[j - 1]; L->list[i] = x; L->size++; return 1; }}int ListDelete(SeqList *L, int i, DataType *x) {//刪除元素 int j; if (L->size <= 0) { printf("順序表已空,無數據可刪!"); return -1; } else if (i<0 || i>L->size - 1) { printf("輸入參數有誤!"); return -1; } else { *x = L->list[i]; for (j = i + 1; j <= L->size - 1; j++) L->list[j - 1] = L->list[j]; L->size--; return 1; }}int ListGet(SeqList L, int i, DataType *x) {//取出索引為i處的元素 if (i < 0 || i>L.size - 1) { printf("參數不合法!"); return -1; } else { *x = L.list[i]; return 1; }}int ListFind(SeqList L, DataType x) {//查找元素并返回索引 int i; bool hasFind = false; for (i = 0; i < L.size; i++) { if (x == L.list[i]) { return i; hasFind = true; break; } } if (!hasFind) { printf("順序表中沒有該數據!/n"); return -1; }}新聞熱點
疑難解答