编写一个函数要求借助一个栈把一个数组中的数据元素逆置
时间: 2023-05-15 15:06:44 浏览: 87
可以使用以下代码实现:
```
void reverseArray(int arr[], int size) {
stack<int> s;
for (int i = 0; i < size; i++) {
s.push(arr[i]);
}
for (int i = 0; i < size; i++) {
arr[i] = s.top();
s.pop();
}
}
```
这个函数接受一个整型数组和数组大小作为参数,使用一个栈来逆置数组中的元素。首先,将数组中的元素依次压入栈中,然后再依次弹出栈中的元素,将它们赋值给数组中对应的位置,即可完成逆置操作。
相关问题
编写一个函数:将单链表中数据元素逆置。
好的,下面是将单链表中数据元素逆置的函数实现:
```
void reverseList(ListNode** head) {
if (*head == NULL || (*head)->next == NULL) {
return;
}
ListNode* prev = NULL;
ListNode* curr = *head;
ListNode* next = NULL;
while (curr != NULL) {
next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
*head = prev;
}
```
该函数接收一个单链表的头结点指针的指针,通过遍历链表将节点指针逆置,最后重置头结点指针指向逆置后的链表的头结点。
编写一个函数:将单链表B中数据元素逆置。
好的,我可以为您编写这个函数。以下是一个 Python 语言版本的实现例子:
```python
def reverseList(head):
if not head or not head.next: # 链表为空或只有一个节点,直接返回
return head
preNode = None
curNode = head
while curNode:
nextNode = curNode.next # 保存后继节点
curNode.next = preNode # 当前节点指向前驱节点
preNode = curNode
curNode = nextNode
return preNode
```
使用这个函数将单向链表逆置:
```python
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
head = ListNode(1)
p1 = ListNode(2)
p2 = ListNode(3)
p3 = ListNode(4)
head.next = p1
p1.next = p2
p2.next = p3
# 原链表输出:1 -> 2 -> 3 -> 4
cur = head
while cur:
print(cur.val)
cur = cur.next
print('逆置后:')
newHead = reverseList(head)
# 逆置后的链表输出:4 -> 3 -> 2 -> 1
cur = newHead
while cur:
print(cur.val)
cur = cur.next
```
输出结果如下:
```
1
2
3
4
逆置后:
4
3
2
1
```