.在线性表 UL *data[N]={“ZHAO”,“QIAN”,“SUN”,“LI”,“ZHOU”,“WU",“ZHENG",“WANG”}的i=3位置之后插入“LIU”,并显示出来。
时间: 2023-11-12 19:06:31 浏览: 190
数据结构C语言版线性表算法2.4-数据结构c语言版严蔚敏顺序线性表12个基本操作及算法的实现... 定义线性表节点的结构.pdf
5星 · 资源好评率100%
在引用中,可以使用ListInsert(&L, i, e)函数在线性表L的第i个位置插入元素e。因此,可以按照以下步骤在UL *data[N]中的i=3位置之后插入“LIU”:
1. 将UL *data[N]转换为线性表L。
2. 使用ListInsert(&L, i+1, "LIU")函数在L的第i+1个位置插入元素“LIU”。
3. 将L转换回UL *data[N]并输出。
代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXSIZE 100
typedef struct {
char *elem;
int length;
} SqList;
int InitList(SqList *L) {
L->elem = (char *)malloc(MAXSIZE * sizeof(char));
if (!L->elem) {
return 0;
}
L->length = 0;
return 1;
}
int ListInsert(SqList *L, int i, char *e) {
if (i < 1 || i > L->length + 1) {
return 0;
}
if (L->length >= MAXSIZE) {
return 0;
}
char *q = &(L->elem[i-1]);
for (char *p = &(L->elem[L->length-1]); p >= q; --p) {
*(p+1) = *p;
}
*q = *e; ++L->length;
return 1;
}
int main() {
UL *data[N] = {"ZHAO", "QIAN", "SUN", "LI", "ZHOU", "WU", "ZHENG", "WANG"};
SqList L;
InitList(&L);
for (int i = 0; i < N; ++i) {
ListInsert(&L, i+1, data[i]);
}
char *e = "LIU";
ListInsert(&L, 4, e);
for (int i = 0; i < L.length; ++i) {
printf("%s ", L.elem[i]);
}
printf("\n");
return 0;
}
```
阅读全文