久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
C語言在鏈表中插入結點
[打印本頁]
作者:
hutians
時間:
2015-2-10 17:39
標題:
C語言在鏈表中插入結點
/********************************************************************************
該程序實現鏈表的結點插入:
程序中的void Deletestu(TYM *head)是用來釋放已經生成的鏈表空間,程序中的
TYM *Insert(TYM *head,int pos,int n)函數是用來插入新的結點并返回整個鏈表的首地址。
在這程序中,主函數首先默認鏈表的長度為5*TYM,然后輸入五個變量的值并輸出。接著是
插入結點通過輸入i和n的值來設置插入的位置和長度,最后將整理后的新鏈表中的信息一
起輸出。
*********************************************************************************/
#include <stdio.h>
#include <stdlib.h>
typedef struct stu //定義TYM的結構類型
{
char name[20];
int num;
struct stu *next;
}TYM;
void Deletestu(TYM *head) //釋放函數
{
TYM *p; //定義TYM類型的指針
for(p=head;p!=NULL;head = p) //釋放整條鏈的程序空間
{
p=head->next;
free(head);
}
if(p==NULL) //如果釋放成功,則輸出標志
printf("**** Free success! *****\n");
}
TYM *Insert(TYM *head,int pos,int n) //插入結點指針函數
{
TYM *p,*q,*head_i,*head_ii;
int i;
head_i = p = (TYM *)malloc(sizeof(TYM)); //開辟一個新的空間
printf("************************\n");
printf("Please Input The Information Of Insert:\n");
scanf("%s%d",p->name,&p->num); //對新的空間進行賦值
for(i=0;i<n-1;i++) //開辟N個空間
{
q = (TYM *)malloc(sizeof(TYM)); //開辟一個新的空間
p->next = q; //將新空間的地址給前一個變量的next成員
p = q; //將新空間的地址賦給p
scanf("%s%d",p->name,&p->num); //給新開辟的空間賦值
p->next = NULL; //將新變量的成員next設為不指向任何地址
}
if(pos==1) //如果插入的是第一個地址
{
p->next = head; //將原鏈表的首地址賦給新鏈表最后一個變量的next成員
head= head_i; //將新鏈表的首地址賦給head
}
else
{
head_ii = head;
for(i=1;i<pos-1;i++) head_ii = head_ii->next; //找到插入結點的位置
p->next = head_ii->next; //將要插入結點的位置的變量的next成員的值賦給新鏈表的最后一個變量的next成員
head_ii->next = head_i; //將新鏈表的首地址賦給要插入結點的位置的變量的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)); //開辟一個新空間
p->next = q; //將新空間的地址賦給前一個變量的next成員
p = q; //將新空間的地坦賦給p
p->next = NULL; //使新變量的next成員不指向任何方向
}
printf("************************\n");
printf("Please Input The Information:\n");
for(p=head;p!=NULL;p = p->next) //將整個鏈表進行賦值
{
scanf("%s%d",p->name,&p->num); //輸入當前變量的值
}
printf("******** Output ********\n");
for(p=head;p!=NULL;p=p->next) //將整個鏈表進行輸出
{
printf("%s\t%d\n",p->name,p->num); //輸出當前變量的值
}
printf("************************\n");
printf("Please Input The Insert Position:\n");
printf("Position:\t");
scanf("%d",&i); //輸入需要插入的位置
printf("Lenth:\t\t");
scanf("%d",&n); //輸入插入鏈表的長度
head = (TYM*)Insert(head,i,n); //調用插入函數,將返回的值強制轉換為(TYM*)類型
printf("****** Output All ******\n");
for(p=head;p!=NULL;p=p->next) //將插入后的鏈表全部輸出
{
printf("%s\t%d\n",p->name,p->num); //輸出當前變量的值
}
Deletestu(head); //釋放整條鏈表
return 0;
}
*********************************************調試窗口*******************************************
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91精品亚洲
|
日韩一区二区三
|
国产福利在线视频
|
成人av免费看
|
久久888
|
av狠狠干
|
日韩精品一二三
|
99精品视频免费观看
|
精品免费在线
|
精品国产乱码久久久久久蜜柚
|
操操操av
|
视频一区二区在线播放
|
福利视频一区二区
|
成人午夜精品
|
亚洲+小说+欧美+激情+另类
|
www免费视频
|
丰满少妇高潮在线观看
|
少妇福利视频
|
欧美性精品
|
黄色片视频
|
激情av网站
|
www.精品
|
成年人视频在线播放
|
国产欧美激情
|
亚洲一区二区三区在线视频
|
一级片免费视频
|
亚洲国产成人91精品
|
www视频在线观看网站
|
www亚洲
|
视频爱爱免费视频爱爱太爽
|
精品国产欧美一区二区三区成人
|
免费av网站在线观看
|
欧美日日夜夜
|
97国产精品视频
|
福利小视频
|
又黄又爽又刺激的视频
|
欧美一区二区在线视频
|
亚洲精品网站在线观看
|
久久久久久网
|
国产一区二区av
|
成人av免费看
|