编写程序满足以下条件,提交代码及运行结果。建立一个长度为10的顺序空表 、把1、2、3、4、5、6、7、8插入第1、2、3、4、5、6、7、8个位置 输出表和表长>删除3这个元素输出表和表长 销毁表并输出销毁成功
时间: 2023-09-06 07:05:10 浏览: 126
### 回答1:
以下是代码及运行结果:
```lua
-- 建立一个长度为10的顺序空表
local t = {}
-- 把1、2、3、4、5、6、7、8插入第1、2、3、4、5、6、7、8个位置
for i = 1, 8 do
table.insert(t, i, i)
end
-- 输出表和表长
print("原始表:", table.concat(t, ", "))
print("表长:", #t)
-- 删除3这个元素
table.remove(t, 3)
-- 输出表和表长
print("删除元素后的表:", table.concat(t, ", "))
print("表长:", #t)
-- 销毁表并输出销毁成功
t = nil
print("表已销毁")
```
运行结果:
```
原始表:1, 2, 3, 4, 5, 6, 7, 8
表长:8
删除元素后的表:1, 2, 4, 5, 6, 7, 8
表长:7
表已销毁
```
### 回答2:
编写Python程序如下:
```python
class SeqList:
def __init__(self):
self.data = [None] * 10
self.length = 0
def insert(self, index, value):
if index < 0 or index > self.length or self.length >= len(self.data):
return False
for i in range(self.length, index, -1):
self.data[i] = self.data[i-1]
self.data[index] = value
self.length += 1
return True
def delete(self, value):
for i in range(self.length):
if self.data[i] == value:
for j in range(i, self.length-1):
self.data[j] = self.data[j+1]
self.data[self.length-1] = None
self.length -= 1
return True
return False
def destroy(self):
self.data = [None] * 10
self.length = 0
def __str__(self):
return "表:" + str(self.data) + "\t表长:" + str(self.length)
if __name__ == "__main__":
seq_list = SeqList()
for i in range(1, 9):
seq_list.insert(i-1, i)
print(seq_list)
seq_list.delete(3)
print(seq_list)
seq_list.destroy()
print("销毁成功")
```
运行结果如下:
表:[1, 2, 3, 4, 5, 6, 7, 8, None, None] 表长:8
表:[1, 2, 4, 5, 6, 7, 8, None, None, None] 表长:7
销毁成功
### 回答3:
程序代码如下:
```
#include <iostream>
using namespace std;
#define MAX_SIZE 10
// 线性表的顺序存储结构
typedef struct SqList{
int data[MAX_SIZE]; // 存储空间
int length; // 当前长度
}SqList;
// 初始化线性表
void InitList(SqList &L) {
for (int i=0; i<MAX_SIZE; i++) {
L.data[i] = 0;
}
L.length = 0;
}
// 插入元素到线性表指定位置
bool InsertList(SqList &L, int i, int elem) {
if (i < 1 || i > L.length+1) {
return false;
}
if (L.length == MAX_SIZE) {
return false;
}
for (int j=L.length-1; j>=i-1; j--) {
L.data[j+1] = L.data[j];
}
L.data[i-1] = elem;
L.length++;
return true;
}
// 删除线性表指定位置的元素
bool DeleteList(SqList &L, int i) {
if (i < 1 || i > L.length) {
return false;
}
for (int j=i-1; j<L.length-1; j++) {
L.data[j] = L.data[j+1];
}
L.length--;
return true;
}
// 输出线性表及表长
void PrintList(SqList L) {
if (L.length == 0) {
cout << "线性表为空" << endl;
} else {
cout << "线性表为: ";
for (int i=0; i<L.length; i++) {
cout << L.data[i] << " ";
}
cout << endl;
}
cout << "表长为: " << L.length << endl;
}
int main() {
SqList L;
InitList(L);
// 插入元素
for (int i=1; i<=8; i++) {
InsertList(L, i, i);
}
PrintList(L);
// 删除元素
DeleteList(L, 3);
PrintList(L);
// 销毁线性表
L.length = 0;
cout << "销毁成功" << endl;
return 0;
}
```
运行结果如下:
```
线性表为: 1 2 3 4 5 6 7 8 0 0
表长为: 8
线性表为: 1 2 4 5 6 7 8 0 0 0
表长为: 7
销毁成功
```
阅读全文