pyqt5的listview怎么删除所有 行
时间: 2024-05-02 18:02:43 浏览: 7
当然,以下是用链表实现一个Deque的C代码,供您参考:
```
#include <stdio.h>
#include <stdlib.h>
// 定义节点类型
typedef struct node {
int data;
struct node* next;
struct node* prev;
} Node;
// 定义双向链表类型
typedef struct deque {
Node* front;
Node* rear;
} Deque;
// 初始化双向链表
void initDeque(Deque* deque) {
deque->front = NULL;
deque->rear = NULL;
}
// 在队头插入元素
void pushFront(Deque* deque, int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->prev = NULL;
newNode->next = deque->front;
if (deque->front != NULL) {
deque->front->prev = newNode;
} else {
deque->rear = newNode;
}
deque->front = newNode;
}
// 在队尾插入元素
void pushBack(Deque* deque, int data) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = data;
newNode->prev = deque->rear;
newNode->next = NULL;
if (deque->rear != NULL) {
deque->rear->next = newNode;
} else {
deque->front = newNode;
}
deque->rear = newNode;
}
//从队头删除元素并返回其值
int popFront(Deque* deque) {
if (deque->front == NULL) {
printf("Deque is empty.\n");
return -1;
}
Node* delNode = deque->front;
int delData = delNode->data;
deque->front = deque->front->next;
if (deque->front != NULL) {
deque->front->prev = NULL;
} else {
deque->rear = NULL;
}
free(delNode);
return delData;
}
//从队尾删除元素并返回其值
int popBack(Deque* deque) {
if (deque->rear == NULL) {
printf("Deque is empty.\n");
return -1;
}
Node* delNode = deque->rear;
int delData = delNode->data;
deque->rear = deque->rear->prev;
if (deque->rear != NULL) {
deque->rear->next = NULL;
} else {
deque->front = NULL;
}
free(delNode);
return delData;
}
// 获取队头元素
int front(Deque* deque) {
if (deque->front == NULL) {
printf("Deque is empty.\n");
return -1;
}
return deque->front->data;
}
// 获取队尾元素
int rear(Deque* deque) {
if (deque->rear == NULL) {
printf("Deque is empty.\n");
return -1;
}
return deque->rear->data;
}
int main() {
Deque deque;
initDeque(&deque);
pushFront(&deque, 1);
pushFront(&deque, 2);
pushBack(&deque, 3);
pushBack(&deque, 4);
printf("Front element: %d\n", front(&deque));
printf("Rear element: %d\n", rear(&deque));
printf("Deleted front element: %d\n", popFront(&deque));
printf("Deleted rear element: %d\n", popBack(&deque));
printf("Front element: %d\n", front(&deque));
printf("Rear element: %d\n", rear(&deque));
return 0;
}
```
希望对您有所帮助。