用C语言编写一个程序sqlist.cpp,实现顺序表的各种基本运算(假设顺序表的元素类型ElemType 为char),并在此基础上设计一个程序prac1-1.cpp完成以下功能。 (1)初始化顺序表
时间: 2024-12-08 20:23:42 浏览: 98
在C语言中,我们可以使用结构体定义一个简单的顺序表,并实现基本操作如创建、插入、删除和查找等。首先,我们定义一个顺序表结构`List`:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体
typedef struct Node {
char data; // 数据域
struct Node* next; // 指向下一个节点的指针
} ListNode;
// 初始化顺序表
ListNode* createList() {
ListNode* head = NULL;
return head;
}
// 插入元素到列表尾部
void insertNode(ListNode** head, char data) {
ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));
if (newNode == NULL) {
printf("Memory allocation failed.\n");
return;
}
newNode->data = data;
newNode->next = NULL;
if (*head == NULL) {
*head = newNode;
} else {
ListNode* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 查找元素
ListNode* findNode(ListNode* head, char data) {
ListNode* temp = head;
while (temp != NULL) {
if (temp->data == data)
return temp;
temp = temp->next;
}
return NULL;
}
// 打印顺序表
void printList(ListNode* head) {
ListNode* temp = head;
while (temp != NULL) {
printf("%c -> ", temp->data);
temp = temp->next;
}
printf("NULL\n");
}
int main() {
// 示例:初始化一个空列表
ListNode* list = createList();
// 插入元素
insertNode(&list, 'A');
insertNode(&list, 'B');
insertNode(&list, 'C');
// 打印列表
printList(list);
// 查找元素
ListNode* found = findNode(list, 'B');
if (found)
printf("Found 'B'\n");
else
printf("'B' not found in the list.\n");
return 0;
}
```
接下来是`prac1-1.cpp`程序,它在这个基础之上添加更多功能,例如:
```c
// 增加的功能,比如插入指定位置、删除元素、获取长度等
void insertAtPosition(ListNode** head, int index, char data) {
// ... 实现插入到指定位置的功能
}
ListNode* deleteNode(ListNode** head, char data) {
// ... 实现删除含有特定数据的节点的功能
}
int getListLength(ListNode* head) {
// ... 计算列表长度
return 0;
}
int main() {
// 使用已有的createList(), insertNode() 等函数,增加新功能的应用示例
// 创建列表
ListNode* list = createList();
// 插入元素并定位
insertNode(&list, 'D');
insertAtPosition(&list, 1, 'E'); // 在索引1处插入'E'
// 打印列表
printList(list);
// 删除元素
deleteNode(&list, 'D');
// 获取列表长度
int length = getListLength(list);
printf("List length: %d\n", length);
return 0;
}
阅读全文
相关推荐

















