java写的单链表和C语言的单链表对比

package test1;

public class node {
    String value;
    node next;
    public node(String value){
        this.value=value;

    }

}

package test1;
import java.util.Scanner;
public class linked {
    static node head;
    static node ans;//用来保证head不变的介质
    public void add(String value){
        node num=new node(value);
        if(head==null){
            head=num;
            return;
        }
        ans=head;
        while(ans.next!=null){
            ans=ans.next;
        }
        ans.next=num;
    }
    public void display(){
        for(int i=0;i<5;i++) {
            System.out.println(head.value + " ");
            head = head.next;
        }
    }
    public static void main(String []args){
        linked l=new linked();
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<5;i++){
            String a=sc.next();
            l.add(a);
        }
        l.display();
    }
}


#include<stdio.h>
#include<malloc.h>
typedef struct node {
	char value[10];
	struct node *next;
}linkList;
linkList *creat(int num) {
	linkList *head, *node, *end;
	head = (linkList*)malloc(sizeof(linkList));
	end = head;
	for (int i = 0; i < num; i++) {
		node = (linkList*)malloc(sizeof(linkList));
		scanf("%s", &node->value);
		end->next = node;
		end = node;
	}
	end->next = NULL;
	return head;

}

int main()
{
	int count;
	scanf("%d", &count);
	linkList *L=creat(count);
	while (L->next != 0) {
		L = L->next;
		printf("%s ", L->value);
	}
	return  0;
}

程序很简单有不懂的留言解答
心得:感觉java写的链表 node next;更像是一个连环套next包括node,node的next里面在加一个node。。。一直套。而C语言里面next直接是一个指针然后指针指向下一个node地址,是一个链。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是使用冒泡排序算法对单链表进行排序的C语言代码: ```c #include <stdio.h> #include <stdlib.h> // 定义单链表结构体 typedef struct node { int data; struct node *next; } Node; // 冒泡排序函数 void bubble_sort(Node *head) { Node *p, *q, *tail = NULL; int exchange = 1; while (exchange && head->next != tail) { exchange = 0; p = head; q = p->next; while (q != tail) { if (p->data > q->data) { int tmp = p->data; p->data = q->data; q->data = tmp; exchange = 1; } p = p->next; q = q->next; } tail = p; } } // 创建单链表函数 Node *create_list(int n) { Node *head = NULL, *tail = NULL, *p; int i, x; for (i = 1; i <= n; i++) { printf("请输入第%d个节点的值:", i); scanf("%d", &x); p = (Node *)malloc(sizeof(Node)); p->data = x; p->next = NULL; if (head == NULL) { head = p; } else { tail->next = p; } tail = p; } return head; } // 输出单链表函数 void print_list(Node *head) { Node *p = head; while (p != NULL) { printf("%d ", p->data); p = p->next; } } // 主函数 int main() { int n; Node *head; printf("请输入节点个数:"); scanf("%d", &n); head = create_list(n); printf("排序前的单链表为:"); print_list(head); bubble_sort(head); printf("\n排序后的单链表为:"); print_list(head); return 0; } ``` 其中,`bubble_sort()` 函数使用冒泡排序算法对单链表进行排序。`create_list()` 函数用于创建包含 `n` 个节点的单链表,并返回头结点指针。`print_list()` 函数用于输出单链表中的所有节点值。在 `main()` 函数中,先调用 `create_list()` 函数创建单链表,然后输出排序前的单链表,调用 `bubble_sort()` 函数进行排序,最后输出排序后的单链表

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥学

感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值