已知字符串S1和S2都采用链式,判断S1和S2是否相等,用c语言
时间: 2024-10-24 20:04:52 浏览: 7
在C语言中,判断两个链表表示的字符串S1和S2是否相等,需要遍历这两个链表并比较节点中的字符。以下是步骤:
1. 定义一个结构体`Node`来表示链表节点,包含一个字符`ch`和指向下一个节点的指针`next`。
```c
typedef struct Node {
char ch;
struct Node* next;
} Node;
```
2. 创建一个函数`isStringsEqual`来检查链表是否相等。该函数接收两个链表头节点作为参数。
```c
int isStringsEqual(Node* S1, Node* S2) {
while (S1 && S2) {
if (S1->ch != S2->ch)
return 0; // 如果当前字符不同,返回0(非相等)
S1 = S1->next;
S2 = S2->next;
}
// 链表长度不一致时也认为不相等
return S1 == NULL && S2 == NULL;
}
```
这个函数会一直比较直到找到第一个不匹配的字符或者两个链表同时到达结束。如果任何时候发现不匹配,就立即返回0;如果两个链表都遍历完了还没发现问题,则它们是相等的。
阅读全文