求c语言入门大神帮忙讲解一下里面每一句的意思

求精通数据结构的大神讲解一下C语言的这段代码_百度知道
求精通数据结构的大神讲解一下C语言的这段代码
#include &lt, p-& i++)
p = (PtrNode)malloc(sizeof(Node));
p = p-&gt,
if(j&lt, newName);
for(j=0, int j){
PtrNode p=ls!=NULL)
p-&n&name)&gt, p-&
while(p;next, q, q-& i&
i++!=NULL)
p=p-&n-1&&bFlag==1;&quot, &null\, tmpName), char key_name[32]){
strcpy(q-&
return p这是数据结构里建立线性表的一段代码 代码有些长 起码逐行说一下前一部分 因为本人C的基础不是很好 所以阅读起来有些吃力 还请帮帮忙 不胜感激;;next = NULL;
while(p;name);
}}void DestroyList(PtrNode *ls){
PtrNode p = *
char tmpName[32];
}name);next = p!=NULL&&i&
while(p;next.h&next = s.h&next = NULL;}void TraverseList(PtrNode ls){
PtrNode p=ls-&
char tmpName[32], tmpName);
if(strcmp(p-&%s-& i++)
bFlag = 0;
bFlag = 1;
if(q==NULL)
return NULL;#include &)!#include &
int bFlag=1;
p =%s&quot, int n){
rear = ls, n = GetLength(ls);next = p-&
while(q;}PtrNode LocateElem(PtrN0) return NULL;
struct _Node *typedef struct _Node{
char name[32], tmpName);n;j)
p=p-&}int GetLength(PtrNode ls){
PtrNode p=ls-&typedef struct _Node * PtrN
strcpy(p-& j&name);
free(q), q-&
PtrNvoid InitList(PtrNode *ls){
*ls = (PtrNode)malloc(sizeof(Node));
while(p;}void DeleteNode(PtrNode p){
PtrNode s=p-&gt, key_name)==0)
free(s); i&lt!=NULL)
printf(&}void InsertNode(PtrN
strcpy((*ls)-&gt,0)
strcpy(tmpN
strcpy(p-&name,
rear-&gt, char newName[32]){
PtrNode s = (PtrNode)malloc(sizeof(Node));Nothing&);}void CreateList(PtrN
p = p-&gt!=NULL)
(*ls)-& j++)
*ls = NULL;next = s-&gt.h&
p = p-&}PtrNode GetElem(PtrN
strcpy(s-&
int i=0;}void BubbleSort(PtrNode ls){
int i, rear!=NULL)
if(strcmp(q-&stdlib
pNode=LocateElem(myLkList!=NULL)
DeleteNode(pNode); }
TraverseList(myLkList);
if(pNode, newName), newName[32], 4);;
InitList(&myLkList), keyName);
pNode = GetElem(myLkList!=NULL)
InsertNode(pN;%s&
CreateList(myLkList。int main(){
TraverseList(myLkList);
if(pNode, keyName);%s&
PtrNode myLkList伤良避剐篆溉吊炮, n);
char keyName[32], pNode由于提问字数限制 没有写主函数代码 在这里补充 还请见谅
提问者采纳
//a;&&&rear&nbsp!=NULL)//将此结点之后的统统删除&myLkL&/zhidao/wh%3D450%2C600/sign=0c81b5b395dda144da5c64b6af40ad162d9f2dfabec8a;&ls)//返回ls的结点个数{&nbsp我帮你注释了一下;&&&&&&&&&&&&&=&newName[32])//将name值为newName的新结点插入到p的当前位置;if(pN&n)//尾插法建立链表;&&&keyName[32];{&&&return&&=&&&&&&&_Node{&=&char&while(p;);&&}&&&&&struct&nbsp.jpg" />以下为你的代码;N&&&=&&&while(p;&&&&&p-&&&0;&pN//遍历打印&printf(&&&while(p,&nbsp,&nbsp,依次销毁ls的每一个结点&&next&//遍历打印&p=p-&}PtrNode&scanf(&&&&&&&&&&&q&int&*ls)//初始化链表{&&*PtrNGetLength(ls);p&newName);&&return&&&nbsp,p自动后移{&&&&&&&&&pNode=LocateElem(myLkL&p;&name[32],&printf(&&=&=&*ls)//销毁链表ls{&&&(PtrNode)malloc(sizeof(No略沸篡剐诂溉隔炮de));&PtrNode&p-&&j)//j大于链表长度的情况下p指向的是最后一个元素&nbsp,&&&&q&}}void&&&PtrNode&&&{&&&&q-&&&TraverseList(myLkList);//声明字符数组&&&{&&&&&&bFlag=1;&i=0;&&struct&&&&&;&return&i++;&&&&&&&&return&&}&n=4;&q&p-&&&/zhidao/pic/item/7af40ad162d9f2dfabec8a;}&&&&&=&&&&nbsp,&char&LocateElem(PtrNode&&keyName);i&&&{&&&keyName):\n&&&&&p&{&&nbsp,&else&ls-&&if(j&int&&&&%s-&&&}&&&&&&key_name)==0)&&&&&}void&&}&nbsp,参数1大于参数2时执行if内的语句&&p&&&nbsp,&nbsp,&&&}void&&name);&&CreateList(PtrNode&&&&p-&(PtrNode)malloc(sizeof(Node));j&&nbsp!=NULL)//用p遍历&p-&&p-&s;&&i++)&&i;&&&NULL;&&&nbsp!=NULL)&typedef&&&p=&&strcpy(tmpNscanf(&&&&&&&&&&TraverseList(myLkList);&&&}&&for(j=0;p-&gt,&nbsp,&0;if(strcmp(p-&;j++)&&&&//对调p和q的name值&&&=&&&p)//删除结点p{&&&&newName);&nbsp.h&&&bFlag&&&&&&&&nbsp.&&0)&&next&=&q-&&&&=&i&&Nothing&=&bFlag&&&nbsp.h&&nbsp,&for(i=0;PtrNode&=&&rear&int&&&&int&&&TraverseList(myLkList);=&&&PtrNode&}&&&nbsp,&InitList(PtrNode&&&请输入要查找的关键字\n&//初始化&nbsp,&&&&p=ls-&i++)&&{&//默认name值为Noting&&&next&PtrNode&next&&);=&&&&%s&&{&;//输入要查找的keyName&nbsp,&nbsp,&}&TraverseList(PtrNode&&int&&&DeleteNode(PtrNode&return&&&&&&nbsp,&&//此时p-&=&&&nbsp!=NULL)&&nbsp.&&&&q;&&&&&&newName);&&&&s-&strcpy(q-&&&&&nbsp!=NULL&amp!=NULL)&strcpy(s-&&&&rear-&&GetElem(myLkL&1;ls-&gt,&&nbsp,&=&&&//暂存p的next值&&删除第四个以后的结点;&&&DestroyList(PtrNode&&*ls&_Node&&&&&&if(strcmp(q-&&&&&nbsp,最终为升序{&&PtrNode&char&/zhidao/wh%3D600%2C800/sign=b247b783b27ecaa113bbe5/7af40ad162d9f2dfabec8a;&&quot!=NULL)&&n-1&&//插入4个结点&}&&&nbsp:strcmp&&&newName[32];&//找到与key_name相等的元素后直接跳出循环&&&(*ls)-&q&//百度百科;&#include&while(p;&&strcpy(p-&&PtrNode&&i++;DeleteNode(pNode);&InsertNode(pN&&&//-------------------------------------------int&p;&&&&=&&printf(&&p&&struct&&char&=&&&p-&&&&&&nbsp.jpg" esrc="&&&&&&j;&&p-&p;&&//rear回到链表最后位置&while(q;&&&&&n&);InsertNode(PtrNode&&&&nbsp,&&&&if(q==NULL)&);&nbsp://a;}void&&&&&&&&&printf(&quot,&&nbsp,&_Node&*name)&&&&&&nbsp,没有则返回空{&&p;&&&&&&&int&&&}}&&&&//链表尾节点指向空}void&(PtrNode)malloc(sizeof(Node));InitList(&&&&&&&&;&&&&&&&if(pN&&nbsp,&&&&&BubbleSort(PtrNode&q;tmpName[32];%s&&&&&bFlag==1;ls)&&i;{&tmpName);PtrNode&&&&//查到到第4个结点&&&&&&&&&myLkList);&nbsp!=NULL)//若存在这个keyName就在这个结点的下一个位置插入一个新结点&&&//遍历打印&&&main(){&rear-&&&&nbsp、next赋值&4);&&&//默认为空指针}void&&&tmpName);free(q);&{&&&&&&nbsp.&=&&&请输入要添加的新结点\n&&&GetLength(PtrNode&&&&&nbsp,下图为运行结果
其他类似问题
按默认排序
其他2条回答
则返回nullPtrNo徒浮碘荷鄢沽果朴de GetElem(PtrNode ls,若不存在,最后输出nullPtrNode LocateElem(PtrN是构造结构体的void InitList(PtrNode *ls)初始化结构体的, char key_name[32]) 查找第二个形参的值是否存在于ls指向的线性表中,输出指向该结点的指针,若存在typedef struct _Node{
char name[32],其中各个结点的name自己输入void TraverseList(PtrNode ls)
输出整个线性表;}Ntypedef struct _Node * PtrNode, int j) 输出第j个结点的指针void InsertNode(PtrNode p,第一个结点为nothingvoid CreateList(PtrNode ls, int n) 创建一个结点数为n的线性表;
struct _Node *next
没什么难的呀,估计你是不理解指针吧
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言用欧几里得算法定义的求最大公约数的函数没看懂,哪位大神能解释一下?具体到每一步骤。_百度知道
C语言用欧几里得算法定义的求最大公约数的函数没看懂,哪位大神能解释一下?具体到每一步骤。
int gcd(int x,int y){
{t=x;x=y;y=t;}
while(y!=0)
{t=x%y;x=y;y=t;}}
提问者采纳
{t=x;x=y;y=t;}
//交换,使得x是两数中最大值,y是最小值
while(y!=0)
{t=x%y;x=y;y=t;}
//算法核心,首先用x模y,取得余数,然后每次用除数模余数,直到整除为止
提问者评价
谢谢!懂啦
其他类似问题
最大公约数的相关知识
等待您来回答
您可能关注的推广
下载知道APP
随时随地咨询
出门在外也不愁读不懂求大神?解释一下*LinkList_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:243,621贴子:
读不懂求大神?解释一下*LinkList收藏
你应该懂LNode H的意思吧,那LinkList H就相当于LNode * H
最直接具有视觉效果的方法
sizeof(Lnode)
sizeof(LinkList)
你就会发现 后面那个是指针类型
会是一个int
指向node类型数据的一个指针?
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
使用签名档&&
为兴趣而生,贴吧更懂你。或本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助

我要回帖

更多关于 c语言入门 的文章

 

随机推荐