b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

c ++链表_c遍历链表_判断链表是否有环(5)

电脑杂谈  发布时间:2017-02-20 05:19:53  来源:网络整理

假若s,p,q是连续三个结点的指针,若我们要在p前插入一个新结点r,则只需把s的右链域指针指向r,r的左链域指针指向s,r的右链域指针指向p,p的左链域指针指向r即可。在p,q之间插入原理也一样。下面就是一个应用双向循环链表插入算法的例子:#include#include#include#define N 10typedef struct nodechar name[20];struct node *llink,*rlink;stud;stud * creatint nstud *p,*h,*s;int i;ifhstud *mallocsizeofstudNULLprintf"不能分配内存空间!";exit0;h-name[0]'\0';h-llinkNULL;h-rlinkNULL;ph;fori0;iN;I++ifs stud * mallocsizeofstudNULLprintf"不能分配内存空间!";exit0;p-rlinks;printf"请输入第%d个人的姓名",i+1;scanf"%s",s-name;s-llinkp;s-rlinkNULL;ps;h-llinks;p-rlinkh;returnh;stud * searchstud *h,char *xstud *p;char *y;ph-rlink;whilep!hyp-name;ifstrcmpy,x0returnp;else pp-rlink;printf"没有查找到该数据!";void printstud *hint n;stud *p;ph-rlink;printf"数据信息为:\n";whilep!hprintf"%s ",&*p-name;pp-rlink;printf"\n";void insertstud *pchar stuname[20];stud *s;ifs stud * mallocsizeofstudNULLprintf"不能分配内存空间!";exit0;printf"请输入你要插入的人的姓名:";scanf"%s",stuname;strcpys-name,stuname;s-rlinkp-rlink;p-rlinks;s-llinkp;s-rlink-llinks;mainint number;char studname[20];stud *head,*searchpoint;numberN;clrscr;headcreatnumber;printhead;printf"请输入你要查找的人的姓名:";scanf"%s",studname;searchpointsearchhead,studname;printf"你所要查找的人的姓名是:%s\n",*&searchpoint-name;insertsearchpoint;printhead;3、删除删除某个结点,其实就是插入某个结点的逆操作。

还是对于双向循环链表,要在连续的三个结点s,p,q中删除p结点,只需把s的右链域指针指向q,q的左链域指针指向s,并收回p结点就完成了。下面就是一个应用双向循环链表删除算法的例子:#include#include#include#define N 10typedef struct nodechar name[20];struct node *llink,*rlink;stud;stud * creatint nstud *p,*h,*s;int i;ifhstud *mallocsizeofstudNULLprintf"不能分配内存空间!";exit0;h-name[0]'\0';h-llinkNULL;h-rlinkNULL;ph;fori0;i〈n;i++ifs stud * mallocsizeofstudNULLprintf"不能分配内存空间!";exit0;p-〉rlinks;printf"请输入第%d个人的姓名",i+1;scanf"%s",s-name;s-llinkp;s-rlinkNULL;ps;h-llinks;p-rlinkh;returnh;stud * searchstud *h,char *xstud *p;char *y;ph-rlink;whilep!hyp-name;ifstrcmpy,x0returnp;else pp-rlink;printf"没有查找到该数据!";void printstud *hint n;stud *p;ph-rlink;printf"数据信息为:\n";whilep!hprintf"%s ",&*p-name;pp-rlink;printf"\n";void delstud *pp-rlink-llinkp-llink;p-llink-rlinkp-rlink;free p;mainint number;char studname[20];stud *head,*searchpoint;numberN;clrscr;headcreatnumber;printhead;printf"请输入你要查找的人的姓名:";scanf"%s",studname;searchpointsearchhead,studname;printf"你所要查找的人的姓名是:%s\n",*&searchpoint-name;delsearchpoint;printhead;在这里列举了一个应用单链表基本算法的综合程序,双向链表和循环链表的综合程序大家可以自己去试一试。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33457-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...