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