elemtp是什么意思
时间: 2023-11-09 16:09:51 浏览: 31
在这篇文章中,ElemType是一个宏定义,它被定义为int类型。宏定义是一种预处理指令,它将一个标识符替换为一个字符串或一个表达式。在这个例子中,ElemType被定义为int类型,这意味着在程序中使用ElemType时,它将被替换为int类型。这样做的好处是,如果以后需要更改程序中使用的数据类型,只需要更改宏定义即可,而不需要在整个程序中逐个更改数据类型。
相关问题
已知线性表中的元素按值递增有序排列,用带头结点的单链表L表示,现设计算法删除其中重复的多余元素并释放所占空间 typedef struct lnode { elemtpdata; struct lnode* next; } lnode, * linklist; void dessame ( linklist &L ) { }
可以使用双指针法来解决这个问题。具体步骤如下:
1. 定义两个指针p和q,初始时p指向头结点,q指向第一个结点。
2. 遍历链表,比较p和q结点的值是否相等,如果相等,则删除q结点并释放其空间;如果不相等,则将p指针指向q结点。
3. 遍历完链表后,将p指针指向NULL。
下面是具体实现:
void dessame (linklist &L) {
lnode *p = L->next;
while (p != NULL) {
lnode *q = p->next;
if (q != NULL && p->data == q->data) {
p->next = q->next;
delete q;
} else {
p = p->next;
}
}
L = p;
}
这个算法的时间复杂度是O(n),其中n是链表中的元素个数。