當前位置:編程學習大全網 - 編程語言 - 這是數據結構線性表的壹個編程題,那個高手能按要求給改動壹下,謝了啊!

這是數據結構線性表的壹個編程題,那個高手能按要求給改動壹下,謝了啊!

#include <stdio.h>

#include <string.h>

#define MaxSize 100

typedef struct {

int data[MaxSize];

int length;

} SqList;

void InitList(SqList *L) { // 傳入的參數用指針

L->length = 0;

return;

}

int GetLength(SqList L) {

return L.length;

}

int GetElem(SqList L, int i, int *e) {

if (i < 1 || i > L.length){ /*無效的i值*/

return 0;

}else {

*e = L.data[i - 1]; //改變指針的值前面用*

return 1;

}

}

int Locate(SqList L, int x) /*按值查找*/

{

int i = 0;

while (L.data[i] != x){ /*查找值為x的第1個結點*/

i++;

}

if (i > L.length){

return (0); /*未找到*/

}else{

return (i+1);

}

}

int InsElem(SqList *L, int x, int i) {

int j;

if (i < 1 || i > L->length +1){ /*無效的參數i*/

return 0;

}

for (j = L->length; j >= i; j--) { /*將位置為i的結點及之後的結點後移*/

L->data[j] = L->data[j - 1];

}

L->data[i - 1] = x; /*在位置i處放入x*/

L->length++; /*線性表長度增1*/

return 1;

}

int DelElem(SqList *L, int i) {

int j;

if (i < 1 || i > L->length){ //刪除時,i大於線性表的長度

return 0;

}

for (j = i; j < L->length; j++){

L->data[j - 1] = L->data[j];

}

L->length--;

return 1;

}

void DispList(SqList L) {

int i;

for (i = 1; i <= L.length; i++){

printf("%c", L.data[i - 1]);

}

printf("\n");

}

int main() {

int i;

int e;

SqList L;

InitList(&L); // 參數是指針時,實參應為地址

int chr;

memset(&L,0,sizeof(L));

while ((chr = getchar())!= '\n'){

InsElem(&L, chr, L.length+1); //連續插入元素

}

printf("線性表:");

DispList(L);

printf("長度:%d\n", GetLength(L));

i = 3;

GetElem(L, i, &e);

printf("第%d個元素:%c\n", i, e);

e = 'a';

printf("元素%c是第%d個元素\n", e, Locate(L, e));

i = 4;

printf("刪除第%d個元素\n", i);

DelElem(&L, i);

printf("線性表:");

DispList(L);

return 0;

}

  • 上一篇:常見的QA英語有哪些?
  • 下一篇:信息安全考研科目有哪些
  • copyright 2024編程學習大全網