c语言如何用函数传递链表 c语言传入函数
c语言结构体(链表)操作函数
if中可以赋值给head的理由很简单。
清涧网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
因为 if(PTScount(head) == 0)
if判断的就是看它是不是 第一个元素。
如果是第一个元素,自然直接将ins赋值给head。
head所代表的就是第一个元素。
如果到了else这里,那么很明显就不是第一个元素了。
那这个时候肯定就不可以直接复制给head了呀,因为head可是代表第一个元素呀。
所以,你这是肯定改不了的。
在C语言中如何链表
//定义链表结点,包括学号,姓名,和指向下一结点的指针
struct node {
int num;
int name;
struct node *next;
}*linklist
// 当需要一个结点的时候,就为新结点分配内存空间
linklist p;
p=(linklist)malloc(sizeof(struct node));
//结点成员赋值
num=2004;
name=Tom;
next=NULL;
//然后用链表的指针指向该结点p就可以了
//比如有一个指针r指向链表的尾部,可以用以下方法将新结点加如链表中
r-next=p;
关于C语言单向链表,编写一个主函数,要求用函数实现如下功能:
#includeiostream
using namespace std;
class Node {
public:
int data;
Node* next;
Node(int _data) {
data = _data;
next = NULL;
}
};
class LinkList {
private:
Node* head;
public:
LinkList() {
head = NULL;
}
void insert(Node *node, int index) {
if (head == NULL) {
head = node;
return;
}
if (index == 0) {
node-next = head;
head = node;
return;
}
Node *current_node = head;
int count = 0;
while (current_node-next != NULL count index - 1) {
current_node = current_node-next;
count++;
}
if (count == index - 1) {
node-next = current_node-next;
current_node-next = node;
}
}
void output() {
if (head == NULL) {
return;
}
Node *current_node = head;
while (current_node != NULL) {
cout current_node-data " ";
current_node = current_node-next;
}
cout endl;
}
void delete_node(int index) {
if (head == NULL) {
return;
}
Node *current_node = head;
int count = 0;
if (index == 0) {
head = head-next;
delete current_node;
return;
}
while (current_node-next != NULL count index -1) {
current_node = current_node-next;
count++;
}
if (count == index - 1 current_node-next != NULL) {
Node *delete_node = current_node-next;
current_node-next = delete_node-next;
delete delete_node;
}
}
void reverse(){
if(head == NULL){
return;
}
Node *next_node,*current_node;
current_node = head-next;
head-next = NULL;
while(current_node != NULL){
next_node = current_node-next;
current_node-next = head;
head = current_node;
current_node = next_node;
}
}
};
int main() {
LinkList linklist;
for (int i = 1; i = 10; i++) {
Node *node = new Node(i);
linklist.insert(node, i - 1);
}
linklist.output();
linklist.delete_node(3);
linklist.output();
linklist.reverse();
linklist.output();
return 0;
}
标题名称:c语言如何用函数传递链表 c语言传入函数
本文路径:http://hbruida.cn/article/doiiejd.html