久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4145|回復: 0
打印 上一主題 下一主題
收起左側

C語言鏈表學習

[復制鏈接]
跳轉到指定樓層
樓主
ID:183246 發(fā)表于 2017-4-5 15:39 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
鏈表有有頭鏈表和無頭鏈表
無頭鏈表:所有的節(jié)點都包含了有效數(shù)據(jù)。
有頭鏈表:用一個固定的頭節(jié)點來指代整個鏈表,所有的對象掛在這個頭節(jié)點下面,而頭節(jié)點本身不包含有效數(shù)據(jù)。
今天學習在有頭鏈表下插入節(jié)點,插入節(jié)點的方式有從頭部插入和從尾部插入,從頭部插入思路就是將頭部的節(jié)點地址復制給插入數(shù)據(jù)的節(jié)點地址,然后將頭部節(jié)點地址指向插入數(shù)據(jù)的地址。

程序實現(xiàn)方法:
#include<stdio.h>
#include <stdlib.h>
  struct  st
{
        int a;
        struct st *next;
};
struct  st d={0};
void add1(struct st* asj );
void add1(struct st * asj )  
{
        asj->next=d.next;
        d.next=asj;        
}
void main()
{
struct  st* obj_1 = (struct  st*)malloc (sizeof(struct  st));
  struct  st* obj_2 = (struct  st*)malloc (sizeof(struct  st));
  obj_1->a=0;
  add1(obj_1);
  printf("d=%d\n",&(d));
  printf("d.a=%d\n",&(d.a));
  printf("d.next=%d\n",&(d.next));
  printf("next=%d\n",d.next);
  printf("obj_1.a=%d\n",&(obj_1->a));
  printf("obj_1.next=%d\n",&(obj_1->next));
  printf("next=%d\n",obj_1->next);
  obj_2->a=0;
  add1(obj_2 );
  printf("obj_2.a=%d\n",&(obj_2->a));
  printf("obj_2.next=%d\n",&(obj_2->next));
  printf("obj_2.next=%d\n",obj_2->next);
}
運行結果為:
C:\Users\sky\AppData\Local\YNote\data\qq521525C35984A5C31E082DDBFE88B641\919e5ac8cd3140c1aa746edd894df2f0\捕獲.png
       從結果可以發(fā)現(xiàn)obj_1為最后一個節(jié)點,而后面插入的數(shù)據(jù)地址放到了obj_1的前面,而obj_2的節(jié)點地址指向了obj_1,這就是從首地址插入的方法。
       從尾部插入的方法是首先遍歷下鏈表找到最后一個元素,讓最后元素的節(jié)點指向要插入的數(shù)據(jù),要插入的數(shù)據(jù)節(jié)點為0;
程序:
#include<stdio.h>
#include <stdlib.h>

  struct  st
{
        int a;
        struct st *next;
};
struct  st d={0};

void add2(struct st * asb );

void add2(struct st * asb )
{
        struct st *p=&d;
        while(p->next)
          p=p->next;
        p->next=asb;
        asb->next=0;

}

void main()
{
  struct  st* obj_1 = (struct  st*)malloc (sizeof(struct  st));
  struct  st* obj_2 = (struct  st*)malloc (sizeof(struct  st));
  obj_1->a=0;
  add2(obj_1);
  printf("d=%d\n",&(d));
  printf("d.a=%d\n",&(d.a));
  printf("d.next=%d\n",&(d.next));
  printf("next=%d\n",d.next);
  printf("obj_1.a=%d\n",&(obj_1->a));
  printf("obj_1.next=%d\n",&(obj_1->next));
  printf("next=%d\n",obj_1->next);
  obj_2->a=0;
  add2(obj_2 );
  printf("obj_2.a=%d\n",&(obj_2->a));
  printf("obj_2.next=%d\n",&(obj_2->next));
  printf("obj_2.next=%d\n",obj_2->next);

}
結果為:   

可見每次插入的數(shù)據(jù)下個節(jié)點總是指向了最后,而他們的內存是連續(xù)的。

鏈表的學習.pdf (63.45 KB, 下載次數(shù): 25)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品久久久久 | 久久久免费精品 | 欧美日韩在线成人 | 黄网站免费在线观看 | www.99热| 欧美成年黄网站色视频 | 99热播精品| 狠狠的干 | 麻豆一区二区三区 | 亚洲电影一区二区三区 | 亚洲精品在线国产 | 国产精品久久久久久久久免费丝袜 | 高清av一区 | 亚洲永久免费 | 精品麻豆剧传媒av国产九九九 | 国产最好的av国产大片 | 国产精品久久久久一区二区三区 | 国产精品自拍av | 精品福利一区二区三区 | 日韩精品1区2区3区 成人黄页在线观看 | 久久精品欧美一区二区三区不卡 | 国产一二三区电影 | 日韩在线视频一区 | 国产在线麻豆精品入口 | 一区二区三区四区电影视频在线观看 | 欧洲精品一区 | 日韩一区二区三区四区五区六区 | 99精品一区二区三区 | 亚洲精品播放 | 久久亚洲一区二区三 | 国产片侵犯亲女视频播放 | 中文av在线播放 | 激情视频一区 | 精品欧美一区二区三区久久久 | 日韩中文一区 | 综合九九| 午夜天堂精品久久久久 | 黄色亚洲| 99久久精品国产一区二区三区 | 91免费观看国产 | 综合久久一区 |