c语言设计一个字符型的链队列,跪求c语言的高手,链式队列设计问题

运行结果:totalelement >1-->2-->3-->4-->5-->6-->7-->8-->9totalelement >6-->7-->8-->9totalelement >6-->7-->8-->9-->0-->10-->20-->30-->40the4thelementis8。

源代码:#include#includetypedefstructlist_node_t{structlist_node_t*next;/*pointertothenextelementinthecircularsinglelist*/intdata;/*thedatafieldonthiselement*/}list_node_t;typedefstructlist_t{list_node_t*tail;/*thetailofthelist*/unsignedintlen;/*thenumberofelementinthislist*/}list_t;#defineRET_OK0#defineRET_FAIL-1/*initilizealist*/intlist_init(list_t*list){if(list==NULL){returnRET_FAIL;}list->tail=NULL;list->len=0;returnRET_OK;}intlist_empty(list_t*list){return(list->len==0);}intlist_enqueue(list_t*list,intdata){list_node_t*p=NULL;/*mallocanode。

*/p=(list_node_t*)malloc(sizeof(list_node_t));if(p==NULL){returnRET_FAIL;}/*initilizethenodestructure。*/p->data=data;p->next=p;/*insertittothetailofthequeue*/if(list->tail!=NULL){p->next=list->tail->next;list->tail->next=p;}list->tail=p;/*updatethelengthofthequeue*/list->len++;returnRET_OK;}intlist_dequeue(list_t*list,int*data){list_node_t*p=NULL;if(list_empty(list)){returnRET_FAIL;}p=list->tail->next;/*checkwhetherthisisthelastelement。

*/if(p!=list->tail){list->tail->next=p->next;}else{list->tail=NULL;}/*decreacethelength;*/list->len--;/*returnthedata。*/*data=p->data;/*freetheelement*/free(p);returnRET_OK;}intlist_get_element(list_t*list,intpos,int*data){list_node_t*p=NULL;if(pos>list->len){returnRET_FAIL;}p=list->tail->next;while(--pos){p=p->next;}*data=p->data;returnRET_OK;}intlist_debug_pint(list_t*list){inti=0;list_node_t*p=NULL;if(list_empty(list)){printf("thisisaemptylistqueue。

\n");returnRET_OK;}printf("totalelementinthelist:%d\n",list->len);p=list->tail->next;for(i=0;ilen-1;i++){printf("%d-->",p->data);p=p->next;}printf("%d\n",p->data);returnRET_OK;}intmain(intargc,char**argv){inti,element;list_tlist;list_init(&list);for(i=0;i<10;i++){list_enqueue(&list,i);}list_debug_pint(&list);for(i=0;i<5;i++){list_dequeue(&list,&element);}list_debug_pint(&list);for(i=0;i<5;i++){list_enqueue(&list,i*10);}list_debug_pint(&list);list_get_element(&list,4,&element);printf("the%dthelementis%d。

\n",4,element);getchar();return0;}。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值