| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12330 人关注过本帖
标题:求一个创建单向链表简单代码,对于链表创建一头雾水
只看楼主 加入收藏
sanjianfei
Rank: 2
等 级:论坛游民
帖 子:48
专家分:53
注 册:2012-2-21
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:7 
求一个创建单向链表简单代码,对于链表创建一头雾水
通俗的讲解一下
搜索更多相关主题的帖子: 通俗 
2012-03-17 17:03
nicum
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:180
专家分:712
注 册:2011-2-1
收藏
得分:5 
struct List
{
    int n;
    list* next;
}list;
bool add_list(List* p)
{
    if(!p)
        return false;
    p->next=list.next;
    list.next=p;
    return true;
}
2012-03-17 20:41
金鑫崔力文
Rank: 2
等 级:论坛游民
帖 子:4
专家分:14
注 册:2012-3-8
收藏
得分:5 
程序代码:
#include<stdio.h>

struct student
{
    int num;
    char name[15];
    struct student *next;
};

int main()
{
    struct student a={1,"lihua"},b={2,"zhangjie"},c={3,"cuisun"};
    struct student *head,*p;
    head=&a;
    a.next=&b;
    b.next=&c;
    c.next=NULL;
    for(p=head;p!=NULL;p=p->next)
    printf("%d %s\n",p->num,p->name);
    return 0;
}
初始化结构体变量,令第一个结点指针指向第二个结点,第二个结点指向第三个结点,依次类推。(静态链表适合长度固定结点个数较少时使用)
2012-03-18 17:50
sanjianfei
Rank: 2
等 级:论坛游民
帖 子:48
专家分:53
注 册:2012-2-21
收藏
得分:0 
需要有内存分配 也就是 malloc()
网上举得例子真的看不懂
2012-03-18 18:33
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
头插还是尾插呀

                                         
===========深入<----------------->浅出============
2012-03-18 18:40
纯情小郎君
Rank: 2
等 级:论坛游民
帖 子:84
专家分:80
注 册:2011-12-12
收藏
得分:5 
程序代码:
#define NULL 0
#define LEN sizeof(struct student)
struct student
{
    long num;
    float score;
    struct student *next;
};
int n;
struct student*creat()                        //建立链表结构指针函数定义
{
    struct student *head,*p1,*p2;
    n=0;  
    p1=p2=(struct student*)malloc(LEN);        //开辟动态储存空间,并将其地址赋给p1,p2
    scanf("%ld%f",&p1->num,&p1->score);         //往p1指向的空间结点填装数据
    head=NULL;                                   //头指针为空
    while(p1->num!=0)
    {
        n=n+1;                                 //以此来判断是第几个结点
        if(n==1)
            head=p1;
        else
            p2->next=p1;                         //将p1的值赋给p2->next,使p2->next指向p1所指的结点,此时p2还在前一个结点
        p2=p1;                                   //将p1的值赋给p2,移动指针p2,使p2指向p1所指的结点
        p1=(struct student*)malloc(LEN);         //继续开辟空间,将其地址赋给p1
        scanf("%ld%f",&p1->num,&p1->score);       //往新开辟的结点填装数据
    }
    p2->next=NULL;                                 //将最后一个结点的指针域制空
    return(head);                                  //返回头指针
}

老师说,2B是通向梦想的第一步
2012-03-18 22:05
纯情小郎君
Rank: 2
等 级:论坛游民
帖 子:84
专家分:80
注 册:2011-12-12
收藏
得分:0 
尾插

老师说,2B是通向梦想的第一步
2012-03-18 22:08
sanjianfei
Rank: 2
等 级:论坛游民
帖 子:48
专家分:53
注 册:2012-2-21
收藏
得分:0 
我得先自己看看,谢谢各位
2012-03-19 18:26
快速回复:求一个创建单向链表简单代码,对于链表创建一头雾水
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027738 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved