用c语言编写算法:输入数个字符建立字符顺序表,在顺序表上练习①求表长度;②按序号查找;③插入元素 的操作。
时间: 2024-09-21 11:01:19 浏览: 36
在 C 语言中,我们可以使用数组或结构体(struct)来创建字符顺序表并实现上述操作。这里是一个简单的示例:
首先,我们定义一个结构体 `CharacterList` 来存储字符及其顺序号:
```c
typedef struct {
char data;
int index; // 序号
} CharacterListNode;
// 定义空列表
CharacterListNode *characterList = NULL;
```
### 1. 求表长度 (length)
```c
int getLength() {
int length = 0;
if (characterList != NULL) {
CharacterListNode *temp = characterList;
while (temp != NULL) {
length++;
temp = temp->next;
}
}
return length;
}
```
### 2. 按序号查找 (search by index)
```c
char searchByIndex(int index) {
if (index < 0 || index >= getLength()) {
printf("索引越界\n");
return '\0'; // 返回空字符,表示未找到
}
CharacterListNode *temp = characterList;
for (int i = 0; i < index && temp != NULL; i++) {
temp = temp->next;
}
if (temp != NULL) {
return temp->data;
} else {
return '\0';
}
}
```
### 3. 插入元素 (insert)
```c
void insert(char c, int position) {
if (position <= 0 || position > getLength()) {
printf("插入位置错误\n");
return;
}
CharacterListNode newNode = {c, position - 1}; // 准备新节点
if (characterList == NULL) {
characterList = &newNode;
} else {
CharacterListNode *prev = characterList;
while (prev->next != NULL && prev->next->index < position - 1) {
prev = prev->next;
}
if (prev->next != NULL) {
newNode.next = prev->next;
prev->next = &newNode;
} else {
newNode.next = NULL;
prev->next = &newNode;
}
}
}
```
以上就是使用 C 语言实现字符顺序表的基本操作。
阅读全文