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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5530|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言在鏈表中插入結(jié)點(diǎn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:73477 發(fā)表于 2015-2-10 17:39 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
/********************************************************************************

該程序?qū)崿F(xiàn)鏈表的結(jié)點(diǎn)插入:
        程序中的void Deletestu(TYM *head)是用來(lái)釋放已經(jīng)生成的鏈表空間,程序中的
TYM *Insert(TYM *head,int pos,int n)函數(shù)是用來(lái)插入新的結(jié)點(diǎn)并返回整個(gè)鏈表的首地址。
在這程序中,主函數(shù)首先默認(rèn)鏈表的長(zhǎng)度為5*TYM,然后輸入五個(gè)變量的值并輸出。接著是
插入結(jié)點(diǎn)通過(guò)輸入i和n的值來(lái)設(shè)置插入的位置和長(zhǎng)度,最后將整理后的新鏈表中的信息一
起輸出。

*********************************************************************************/

#include <stdio.h>
#include <stdlib.h>

typedef struct stu                                                       //定義TYM的結(jié)構(gòu)類型
{
    char name[20];
    int num;
    struct stu *next;
}TYM;

void Deletestu(TYM *head)                                       //釋放函數(shù)
{
    TYM *p;                                                                 //定義TYM類型的指針
    for(p=head;p!=NULL;head = p)            //釋放整條鏈的程序空間
    {
        p=head->next;
        free(head);     
    }
    if(p==NULL)                                                           //如果釋放成功,則輸出標(biāo)志
    printf("**** Free success! *****\n");
}

TYM *Insert(TYM *head,int pos,int n)                        //插入結(jié)點(diǎn)指針函數(shù)
{
    TYM *p,*q,*head_i,*head_ii;
    int i;
    head_i = p = (TYM *)malloc(sizeof(TYM));            //開辟一個(gè)新的空間
    printf("************************\n");
    printf("Please Input The Information Of Insert:\n");
    scanf("%s%d",p->name,&p->num);                       //對(duì)新的空間進(jìn)行賦值
    for(i=0;i<n-1;i++)                                                   //開辟N個(gè)空間
    {
        q = (TYM *)malloc(sizeof(TYM));                       //開辟一個(gè)新的空間
        p->next = q;                                                      //將新空間的地址給前一個(gè)變量的next成員
        p = q;                                                                //將新空間的地址賦給p
        scanf("%s%d",p->name,&p->num);                   //給新開辟的空間賦值
        p->next = NULL;                                                //將新變量的成員next設(shè)為不指向任何地址
    }
    if(pos==1)                                                             //如果插入的是第一個(gè)地址
    {
        p->next = head;                                                //將原鏈表的首地址賦給新鏈表最后一個(gè)變量的next成員
        head= head_i;                                                  //將新鏈表的首地址賦給head
    }
    else
    {
        head_ii = head;
        for(i=1;i<pos-1;i++)  head_ii = head_ii->next;  //找到插入結(jié)點(diǎn)的位置
        p->next = head_ii->next;                                  //將要插入結(jié)點(diǎn)的位置的變量的next成員的值賦給新鏈表的最后一個(gè)變量的next成員
        head_ii->next = head_i;                                   //將新鏈表的首地址賦給要插入結(jié)點(diǎn)的位置的變量的next成員
    }
    return head;                                                        //返回首地址
}

int main()
{
    TYM *head,*p,*q;                                                 //定義指針變量
    int i,n;
    head = p = (TYM *)calloc(1,sizeof(TYM));            //開辟新空間
    for(i=0;i<4;i++)
    {
        q = (TYM *)malloc(sizeof(TYM));                      //開辟一個(gè)新空間
        p->next = q;                                                     //將新空間的地址賦給前一個(gè)變量的next成員
        p = q;                                                               //將新空間的地坦賦給p
        p->next = NULL;                                               //使新變量的next成員不指向任何方向
    }
    printf("************************\n");
    printf("Please Input The Information:\n");
    for(p=head;p!=NULL;p = p->next)                       //將整個(gè)鏈表進(jìn)行賦值
    {
        scanf("%s%d",p->name,&p->num);                 //輸入當(dāng)前變量的值
    }
    printf("******** Output ********\n");
    for(p=head;p!=NULL;p=p->next)                         //將整個(gè)鏈表進(jìn)行輸出
    {
        printf("%s\t%d\n",p->name,p->num);               //輸出當(dāng)前變量的值
    }
    printf("************************\n");
    printf("Please Input The Insert Position:\n");
    printf("Position:\t");
    scanf("%d",&i);                                                    //輸入需要插入的位置
    printf("Lenth:\t\t");
    scanf("%d",&n);                                                   //輸入插入鏈表的長(zhǎng)度
    head = (TYM*)Insert(head,i,n);                            //調(diào)用插入函數(shù),將返回的值強(qiáng)制轉(zhuǎn)換為(TYM*)類型
    printf("****** Output All ******\n");
    for(p=head;p!=NULL;p=p->next)                          //將插入后的鏈表全部輸出
    {
        printf("%s\t%d\n",p->name,p->num);                //輸出當(dāng)前變量的值
    }
    Deletestu(head);                                                  //釋放整條鏈表
    return 0;
}





*********************************************調(diào)試窗口*******************************************




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人国产精品免费观看 | 综合第一页 | 亚洲午夜一区二区 | 蜜桃在线一区二区三区 | 天天操人人干 | 婷婷精品 | 国产在线一区二区 | www.狠狠操 | 一区二区三区视频播放 | 日韩一区二区福利视频 | 日韩欧美国产一区二区 | 一级一片在线观看 | 久久久精品天堂 | 亚洲激情av | 伊人免费网 | 久久国产欧美日韩精品 | 欧美h版| 青青草国产在线观看 | 中文字幕在线观看www | 精品无码久久久久久国产 | 国产精品久久久久久久久久久免费看 | 成人在线免费电影 | 国产成人精品一区二 | 艹逼网| 中文字幕在线看第二 | 一区二区三区在线观看免费视频 | 成人av一区 | 一区二区三区在线免费观看 | 日本久久久久久 | 亚洲精品18 | a级毛片毛片免费观看久潮喷 | 一区二区国产精品 | 国产精品综合 | 亚洲精品视频免费观看 | 亚洲视频在线观看一区二区三区 | 欧美日韩在线一区 | 在线观看免费观看在线91 | 国产午夜精品福利 | 一区二区三区在线 | 亚洲一二三区免费 | 成人一区二区在线 |